在我的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
任何人都可以帮助我并解释这是如何导致堆栈溢出问题的吗?
提前致谢!
答案 0 :(得分: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;