在使用C语言字符串时候的安全处理问题

在使用C语言字符串时候的安全处理问题

字符指针在赋值的时候一定要记得只copy值,做好安全处理,不然会出很多玄学问题。

char* fileset[100] = {};

//信息的缓存

char* inforset[100] = {};

void ls(char filename[])

{

int i = 0;

DIR* dir_ptr;  //the directory

struct dirent* direntp; //each entry

//设置标签

set_flag(oper);

// show_flags();

if((dir_ptr = opendir(filename)) == NULL)

{

fprintf(stderr,"ls1: cannot open%s \n",filename);

}

else

{

while((direntp = readdir(dir_ptr)) != NULL)

{

//给它多分配一个换行符的位置

fileset[i] = malloc(strlen(direntp->d_name)+1);

strcpy(fileset[i],direntp->d_name);

i++;

}

closedir(dir_ptr);

}

// //显示目前文件集合中的文件名

//第一步筛选,排除一些东西

filter(fileset,filterf);

// show_set(fileset);

order(orderf,fileset);

// printf("hello \n");

get_infor(inforset,fileset,formatf,extraf);

show_set(inforset);

// puts(inforset[99]);

}

你可能感兴趣的:(在使用C语言字符串时候的安全处理问题)