0

在我的 MFC 项目的一个按钮单击功能中,我得到了以下代码,它尝试将一个数据数组复制到另一个数组:

Char dest[2500][50];
double totalNum = CountNum*2;
for (int n=0; n< totalNum; n++){
    memcpy(dest[n], readingdata+n*14, 13);
    dest[n][13]=0;
} 

如果我运行此代码一次或两次,则没有任何问题。但是当我尝试多次运行此代码时,程序给了我一个异常错误:Stack Overflow. 错误发生在chkstk.asm文件中,在第 99 行:

test dword ptr [eax],eax ; probe page

谁能帮我解释一下这是如何导致堆栈溢出问题的?

提前致谢!

4

1 回答 1

1

尝试在这里使用动态数组

double totalNum = CountNum*2;    
ViChar (*dest)[50] = new ViChar[totalNum][50];
for (int n=0; n< totalNum; n++){
    memcpy(dest[n], readingdata+n*14, 13);
    dest[n][13]=0;
}

delete [] dest;
于 2013-10-22T01:48:26.160 回答