我的stackAlloc函数如下所示:void*stackAlloc(size_tsize){if(size>maxStackAllocation)returnmalloc(size);elsereturn_alloca(size);}voidstackAllocFree(void*ptr,size_tsize){if(size>maxStackAllocation){free(ptr);}}如果我改变stackAlloc函数总是使用malloc而不是alloca一切正常。我将函数更改为宏,现在它按预期工作:#definemaxStackAllocation1024#definesta