Tag: 出口

在_SUCCESS和_FAILURE上退出()释放分配的内存

这是一段简短的代码片段,如果失败则会有两次exit(3)调用。 这些调用是否释放malloc分配的内存? 谷歌搜索曾经说过它,甚至更多次,它没有…… 我应该添加free()吗? 另外:哪个更好if (!word) (它也可以用于例如.word == 0,这与word == NULL不同,所以我猜它是错的)或if (word == NULL) ? char *word = NULL, *temp = NULL; word = (char *)malloc(sizeof(char) * size); if (!word) { /* or maybe rather it should be (word == NULL) */ perror(“malloc fail”); if (fclose(fp)) { perror(“fclose fail”); exit(3); /* exit without free ? […]

返回1,返回0和返回-1之间的区别并退出?

例如考虑以下代码 int main(int argc,char *argv[]) { int *p,*q; p = (int *)malloc(sizeof(int)*10); q = (int *)malloc(sizeof(int)*10); if (p == 0) { printf(“ERROR: Out of memory\n”); return 1; } if (q == 0) { printf(“ERROR: Out of memory\n”); exit(0); } return 0; } 返回0,返回1,退出(0)在上面的程序中做什么.. exit(0)将退出总程序并且控件退出循环但是在返回0的情况下会发生什么,返回1,返回-1。