これは私が C で作成した非常に単純なプログラムで、問題なく動作しますが、いくつかの用語がわかりません。
私がする代わりにlist[list_size] = strdup(file)
:
char*test=file
とstrcpy(list[list_size],test)
。セグメンテーション違反が発生します。char*test=malloc(sizeof(char)*MAX_FILENAME_LEN+1)
とtest=file
とstrcpy(list[list_size],test)
. セグメンテーション違反が発生します。またはさえ
strcpy(list[list_size],file)
。セグメンテーション違反が発生します。# include < stdio.h > # include < string.h > # define MAX_LIST_SIZE 1000 # define MAX_FILENAME_LEN 128 int main() { FILE * infile; char * list[MAX_LIST_SIZE], file[MAX_FILENAME_LEN + 1]; size_t list_size = 0; infile = popen("ls", "r"); if (infile != NULL) { while ((list_size < MAX_LIST_SIZE) &&(fscanf(infile, "%s", file) == 1)) { list[list_size] = strdup(file); list_size++; puts(file); } } pclose(infile); return 0;
}
誰かが助けてくれたら最高です。