一道c语言题

[复制链接]
查看11 | 回复2 | 2013-2-22 11:20:23 | 显示全部楼层 |阅读模式
有两个问题,动态分配的空间没有初始化,拷贝数据之后没有结束符,最后也没有释放动态分配的内存。还有个问题是如果你的文件myfile不存在,写入也会失败,打开文件时需要加上O_CREAT标记修改如下:#include#include#include#include#include int main(int argc,char *argv[]){int fd;char *buf = NULL;int ret;int size;size = strlen(argv[2]);buf = (char *)mal...
回复

使用道具 举报

千问 | 2013-2-22 11:20:23 | 显示全部楼层
程序有几个问题:1、申请的内存资源用完没有释放(对buf应该在后面写完文件后加上语句free(buf);)2、打开的文件没有关闭(在写完文件后,应该加语句close(fd);)3、程序第一次运行时,在当前目录下就会产生一个myfile文件,但当在调试的过程中,再次运行程序时,由于该文件已经存在,所以就出现写文件的问题了,所以应该在打开文件的语句中...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行