Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
C6255
Avertissement C6255 : _alloca signale un échec en levant une exception de dépassement de capacité de la pile. Si possible, utilisez _malloca à la place.
Cet avertissement indique qu'un appel à _alloca a été détecté à l'extérieur de la gestion des exceptions locale. _alloca doit toujours être appelé dans la plage protégée d'un gestionnaire d'exceptions car il peut lever une exception de dépassement de capacité de la pile en cas d'échec. Si possible, utilisez _malloca au lieu de _alloca, qui est une version plus sécurisée de _alloca.
Exemple
Le code suivant génère cet avertissement car _alloca peut générer l'exception :
#include <windows.h>
void f( )
{
void *p = _alloca(10);
// code ...
}
Pour corriger cet avertissement, utilisez _malloca et ajoutez un gestionnaire d'exceptions comme indiqué dans le code suivant :
#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 ...
}
}