この手順のデバッグの過程で、ターゲットの背後にある2次元がNULLを追加できないことがわかりました。2次元文字列ポインタ
void list_dir(char **dirp_array)
{
char *dir_name = "./";
DIR *dp;
struct dirent *dirp;
if ((dp = opendir((const char *)dir_name)) == NULL){
perr_exit("opendir errno");
}
while((dirp = readdir(dp)) != NULL){
(* dirp_array) = strdup((char *)dirp->d_name);
printf("%s\n",(* dirp_array));
dirp_array ++;
//dirp_array += strlen(*dirp_array);
}
*dirp_array = NULL;
closedir(dp);
}
変更後、私は定義した2次元hを取得したいと思います。 ここで関数を定義します。
void chack_array(char **array)
{
while(array != NULL){
printf("%s\n",(* array));
array ++;
}
}
main(){
char *dirp_array[256];
list_dir(dirp_array);
chack_array(dirp_array);
}
が、私はコア
私はNULLフラグを取得できませんが、私は私が停止することができないことを意味します。 – haochenghhc
あなたはどの言語を使用しているかを記述し、コードを読みやすくしてください。 – Nurjan
OK、私は修正する必要があります** while(array!= NULL)** ** while(* array!= NULL)** – haochenghhc