关于c语言 动态内存分配的问题

重点在图中后半部分,我试图分配三个内存,从一个txt文件里取出一串数字(里面是123456789),放进一个地址里,然后再复制两次,放进另外两个地址,预期printf得到... 重点在图中后半部分,我试图分配三个内存,从一个txt文件里取出一串数字(里面是123456789),放进一个地址里,然后再复制两次,放进另外两个地址,预期printf得到三个重复的123456789。但是printf出来的是123456789900056789123456789,也就是说中间那次复制失败了。还有,当我free这三个内存的时候,崩溃了。 c语言初学,分不多,但是很急,感激不尽!!! 展开
 我来答
金色潜鸟
2018-05-12 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5660万
展开全部
一些基本语法:
(1)用 argc 判断命令行参数个数:if (argc<2) {printf("Usage: %s file_name\n",argv[0]); return -1;};

(2)用 !inFile 判断文件打开失败:if (!inFile) { printf("Can not open file %s\n",argv[0]);return -1;};

(3)fscanf 返回值等于成功读入的参数个数。用 feof() 判断文件结束
while( fscanf(inFile,"%c",number[i]) ==1){
if (feof(inFile)) break; ....
}
while( fscanf(inFile,"%d",original+j ) ==1){
if (feof(inFile)) break; ....
}
(4)动态分配要用到 sizeof(类型) * 个数:
original=(int*)malloc(sizeof(int)*marker);
if (!original) {printf("no enough memory\n");return -1;};

改正这些基本错误后,再查别的问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式