クイック C の質問はこちら。私たちは最近、ダブル、トリプル、さらにはクアッド ポインターで遊んでいます。この問題に遭遇するまで、私たちは物事を把握していました...
char ***data;
data_generator(&data);
char **temp = data[0];
printf("printing temp[%d]: %s\n",0, temp[0]);
printf("printing temp[%d]: %s\n",1, temp[1]);
dosomething(temp);
int dosomething(char **array) {
printf("printing array[%d]: %s\n",0, array[0]);
printf("printing array[%d]: %s\n",1, array[1]);
......
}
int data_generator(char ****char_data) {
char *command1[2];
char *command2[2];
command1[0] = "right";
command1[1] = "left";
command2[0] = "up";
command2[1] = "down";
char **commandArray[2];
commandArray[0] = command1;
commandArray[1] = command2;
number_of_commands = 2;
if(number_of_commands > 1){
*char_data = commandArray;
}
return number_of_commands - 1;
}
そして、これは印刷されます...
printing temp[0]: right
printing temp[1]: left
Segmentation fault
関数を通過しているときにポインターに何が起こるかについて、いくつかの誤解があるようです。何かご意見は?