warning: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
文字列 printf で Segmentation fault 実験 - Shammerismのテストで、
warning: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
という Warning が出ていたが、この意味がわかった。
これは、
- 変数は char のポインタとして宣言されている
- 代入されようとしているのは char 型である
ため、int 型の領域に char を入れようとしている、という感じの警告。char 型で宣言したつもりだったが・・・こう書くのが正解だったようだ。
#include <stdio.h> int main(int argc, char *args[]){ char *x[256]; *x[0] = 'a'; *x[1] = 'b'; *x[2] = 'c'; printf("%s\n", *x); return 0; }
そして、これを実行すると・・・
$ gcc segfault.c $ ./a.out Segmentation fault: 11 $
改めて原因を探りますか。