以下代码问题出在哪里?

TENTODBV 2003-06-13 11:48:00
在一个基于CRichEditView的单文档程序,添加一菜单项,单击时执行以下代码
void CMyEditorDoc::OnLoad()
{
char buf[1032740];//为什么加大buf后,例如改为char buf[1040000]后运行会出错
int off=0;
CRichEditView *pView=GetView();
CRichEditCtrl &edit=pView->GetRichEditCtrl();
//for(int i=0;i<130000;i++)
//{
// wsprintf(buf+off,"%d\r\n",i);
// off+=strlen(buf+off);
//}
for(int i=0;i<130000;i++)
off +=sprintf(buf + off , "%d\r\n" , i);
edit.SetSel(0,-1);
edit.ReplaceSel(buf);
}
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffeebike 2003-06-13
  • 打赏
  • 举报
回复
建议你将buf给new出来,就是char× buf = new char〔1032740〕;
mrzz 2003-06-13
  • 打赏
  • 举报
回复
栈溢出了,可以在堆中分配数据,
即buf=new char(2000000);
也有可能是内存碎片太多,连续的内存太小。
TENTODBV 2003-06-13
  • 打赏
  • 举报
回复
up
boyfling 2003-06-13
  • 打赏
  • 举报
回复
支持这么大的数组吗

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧