こんにちは、コードがエラーを生成する理由を教えてください。
#include<stdio.h>
int main(){
char ***x;
char **q = *x;
char **(*c) = x;
char ***d = &q;
char ***p = "asdasd";
x=p;
printf("d:%s\n",d);
printf("q:%s\n",q);
printf("x:%s\n",x);
return 0;
}
出力: 1 セグメンテーション違反
返信ありがとうございます。x を初期化すると、まだセグメンテーション違反が発生します。
printf("q:%s\n",q);
出力とコードを以下に示します。1231123124 ではなく d:1231 である理由と、x=p がすべて (x、q、d) ではなく x の値のみを変更する理由を教えてください。
int main(){
char ***x = "1231123124";
char **q = *x;
char **(*c) = x;
char ***d = &q;
char ***p = "asdasd";
x=p;
printf("p:%s\n",p);
printf("d:%s\n",d);
// printf("q:%s\n",q);
printf("x:%s\n",x);
printf("c:%s\n",c);
return 0;
}
出力: p:asdasd
日:1231
x:asdasd
c:1231123124