Aracılığıyla paylaş


C6255

C6255 Uyarı: _alloca bir yığın taşması özel yükselterek hatası gösterir.Bunun yerine _malloca kullanmayı düşünün

Bu uyarıyı belirten bir çağrı _alloca yerel özel durum işlemenin dışında algıladı._allocabir yığın taşması özel başarısızlık yükseltebilirsiniz, çünkü her zaman karşı korumalı bir özel durum işleyici aralığı içinde çağrılmalıdır.Mümkünse, yerine _alloca, kullanmayı _malloca daha güvenli bir sürümünü olduğu _alloca.

Örnek

Bu uyarı için aşağıdaki kod üretir _alloca özel durum oluşturabilirsiniz:

#include <windows.h>

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

Bu uyarı düzeltmek için _malloca ve özel durum işleyicisi aşağıdaki kodda gösterildiği gibi ekleyebilirsiniz:

#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 ...
  }
}

Ayrıca bkz.

Başvuru

_malloca