"stack corruption detected : aborted"
我在函数返回时随机收到错误。我的代码如下:
struct SND_RCV_CMD_t
{
int nRspFieldsCnt;
char** rspValues;
}
void SendAndReceive(SND_RCV_CMD_t *cmdParams)
{
cmdParams->rspValues = SendAndReceiveEx(&cmdParams->nRspFieldsCnt);
}
char** SendAndReceiveEx(int* resFieldsCnt)
{
char** retFields = 0;
*resFieldsCnt = 0;
int maxStrings = 500;
retFields = (char**)malloc(maxStrings * sizeof(char*));
for(int id = 0; id < maxStrings; id++)
{
retFields[id] = (char*)malloc(30 * sizeof(char));
memset(retFields[id], 0x00, 30);
sprintf(retFields[id], "%s", fieldVal);
}
return retFields; //At this point I got stack corruption error
}
当我调用SendAndReceive
方法时,我的代码有时会在SendAndReceiveEx
方法结束时崩溃。错误说"Stack corruption detected : aborted"
。