这个小程序有内存释放的问题吗,对高手来说很容易
下面这个小程序有内存释放的问题吗?只需要考虑opendir和readdir即可
我想返回的指针所指的内存区域一定是堆上的,那么为什么没有释放dp和dirp?
ok,closedir()可以算做释放dp
那么经过不断地
dirp=readdir(dp)
dirp被assign新值后,旧的值如何delete?
#include <sys/types.h>
#include <dirent.h>
#include "ourhdr.h"
int main(int argc,char *argv[])
{
DIR *dp;
struct dirent *dirp;
if(argc!=2)
err_quit("a single argument is required");
if((dp=opendir(argv[1]))==NULL)
err_sys("can't open %s",argv[1]);
while((dirp=readdir(dp))!=NULL)
printf("%s\n",dirp->d_name);
closedir(dp);
exit(0);
}