前提・実現したいこと
このソースコードは合っていますか?
strcpyを使用した方が正解だと思うのですが、このままでもコードが問題なく動くので気になりました。このコードでは、変数directoryも上書きされていると思うのでdirectory->nameが上書きされると同時に指してるポインタx[]も上書きされるのではないかと思ったのですが、出力値を見る限りしっかりとコピーされているように思います。なぜでしょうか?
該当のソースコード
c
1#include <stdio.h> 2#include <dirent.h> 3void kirby(char *x[]) 4{ 5 struct dirent *directory; 6 DIR *dp; 7 dp = opendir("."); 8 int i = 0; 9 while ((directory = readdir(dp)) != NULL) 10 x[i++] = directory->d_name; 11 closedir(dp); 12} 13int main() 14{ 15 char *x[1024]; 16 kirby(x); 17 printf("%s\n",x[0]);//カレントディレクトリの"."がしっかり出力される。 18}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。