关于c语言 动态内存分配的问题
重点在图中后半部分,我试图分配三个内存,从一个txt文件里取出一串数字(里面是123456789),放进一个地址里,然后再复制两次,放进另外两个地址,预期printf得到...
重点在图中后半部分,我试图分配三个内存,从一个txt文件里取出一串数字(里面是123456789),放进一个地址里,然后再复制两次,放进另外两个地址,预期printf得到三个重复的123456789。但是printf出来的是123456789900056789123456789,也就是说中间那次复制失败了。还有,当我free这三个内存的时候,崩溃了。 c语言初学,分不多,但是很急,感激不尽!!!
展开
1个回答
展开全部
一些基本语法:
(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;};
改正这些基本错误后,再查别的问题。
(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;};
改正这些基本错误后,再查别的问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询