C、特にダブルポインターを理解しようとしていますが、この問題に遭遇しました。単一のポインター (for ループを削除するなど) でこの概念が機能することはわかっていますが、特定のコメントでセグ フォールトが発生しているようです。
このエラーが発生する理由を誰かが説明できますか? myArgs のアドレスを渡す前に、メモリを割り当てる必要があるという予感がありますが、浅いコピーを行っているだけなので、メモリを割り当てる必要がありますか?
void readArgs(int argc, char *argv[], char ***myArgs) {
int i;
for(i = 0; i < argc; i++) {
/* crashes here @ i = 0 */
*myArgs[i] = argv[i];
}
}
int main(int argc, char *argv[]) {
char **myArgs;
int i;
readArgs(argc, argv, &myArgs);
for(i = 0; i < argc; i++)
printf("arg[%d]: %s\n", i, myArgs[i]);
}