共用方式為


警告 C6255

_alloca表示失敗,方法是引發堆疊溢位例外狀況。 請考慮改用_malloca

備註

這個警告表示已在本機例外狀況處理之外偵測到 對的呼叫 _alloca

_alloca 應該一律從例外狀況處理程式的受保護範圍內呼叫,因為它可以在失敗時引發堆棧溢位例外狀況。 可能的話,請考慮使用 _alloca_malloca,這是更安全的 _alloca版本。

程式碼分析名稱:UNPROTECTEDUSEOFALLOCA

範例

下列程式代碼會產生此警告,因為 _alloca 可能會產生例外狀況:

#include <windows.h>

void f( )
{
  void *p = _alloca(10);
  // code ...
}

若要更正此警告,請使用 _malloca 並新增例外狀況處理程式,如下列程式代碼所示:

#include <windows.h>
#include <malloc.h>

void f( )
{
  void *p;
  int errcode;
  __try
  {
    p = _malloca(10);
    // code...
    _freea(p);
  }
  __except( (GetExceptionCode() == STATUS_STACK_OVERFLOW ) ?
              EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH )
  {
    errcode = _resetstkoflw();
    // code ...
  }
}

另請參閱

_malloca