无语了VS2008中编个控制台怎么咋就这么难

zhangwuji154 2010-01-08 09:22:08
折腾了半天,
#include <stdio.h>
//#include <stdlib.h>
int main()
{
FILE *fp;
//system("pause");
char filename[20] = "6.txt";
if((fp=fopen(filename,"r"))==NULL)
{
fprintf(stderr,"error%s\n",filename);
return 1;
}
char str[10000][1000];
int i=0;
while(!feof(fp))
{
fgets(str[i],999,fp);

printf("%s",str[i]);
i++;
}
fclose(fp);
return 0;
}
一个啥也没干的程序,直接就内存出错
在char filename[20] = "6.txt";名这儿加断点,都还没运行就内存出错了,
所以我想是不是没运行到断点,就加了system("pause");还没到,也是内存出错。
真的很无语。
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
WaistCoat11 2010-01-08
  • 打赏
  • 举报
回复
VS2008的string是使用的std;
MoXiaoRab 2010-01-08
  • 打赏
  • 举报
回复
#include <string>
using namespace std;
zhangwuji154 2010-01-08
  • 打赏
  • 举报
回复
顺便,那就再回答一个问题吧
string str[10000];
怎么说string 未定义,已经包含头文件
#include <string>
查看MSDN是#include <string>,不是#include <string.h>
zhangwuji154 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zoulie 的回复:]
char str[10000][1000];
栈哪有这么大的..
windows系统默认的是2M, 改成malloc或者new在堆上分配
[/Quote]
是啊,你已经回来了,我想结贴,竟然说现在结贴太早,不让结
zhangwuji154 2010-01-08
  • 打赏
  • 举报
回复
明白了,原来是用c-free编的,不会报这个内存错误
现在移植到VisualStudio.Net下,会内存出错,但没有提示,
刚才又放到C++Builder下,提示了一句,找到了
char str[10000][1000];
是这个申请的太大了,



谁来接分呀
zoulie 2010-01-08
  • 打赏
  • 举报
回复
char str[10000][1000];
栈哪有这么大的..
windows系统默认的是2M, 改成malloc或者new在堆上分配

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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