Share via


Upozornění kompilátoru (úroveň 1) C4750

'identifier': funkce s _alloca() vloženou do smyčky

Poznámky

Funkce identifikátor vynutí vložené rozšíření _alloca funkce ve smyčce, což může způsobit přetečení zásobníku při spuštění smyčky.

Oprava této chyby

  1. Ujistěte se, že se funkce identifikátoru neupravuje se specifikátorem __forceinline .

  2. Ujistěte se, že funkce identifier neobsahuje _alloca funkci obsaženou ve smyčce.

  3. Nezadávejte /O1přepínač , /O2, /Oxani /Og kompilační přepínač.

  4. _alloca Funkci umístěte do příkazu try-except, který zachytí přetečení zásobníku.

Příklad

Následující příklad kódu volání MyFunction ve smyčce a MyFunction volá _alloca funkci. __forceinline Modifikátor způsobí vložené rozšíření _alloca funkce.

// c4750.cpp
// compile with: /O2 /W1 /c
#include <intrin.h>

char * volatile newstr;

__forceinline void myFunction(void) // C4750 warning
{
// The _alloca function does not require a __try/__except
// block because the example uses compiler option /c.
    newstr = (char * volatile) _alloca(1000);
}

int main(void)
{
    for (int i=0; i<50000; i++)
       myFunction();
    return 0;
}

Viz také

_alloca