这是对我之前的问题的跟进。链接在这里。
我的问题是:假设我有以下代码..
char* buf = (char*) malloc(1024);
...
for(; i<20; i++) {
if(read(fd, buf, 1024) == -1) { // read off a file and store in buffer
perror("read failed");
return 1;
}
...
}
free(buf);
我想要得到的是 - 如果发生错误read()
怎么办?这是否意味着我分配的内存永远不会被释放?如果是这种情况,我该如何处理?我应该free()
作为错误处理的一部分调用吗?
再次,我为糟糕的英语道歉。^^;
非常感谢,K。