tt4cs
@tt4cs
うーむ、やっぱりCのポインタが全然わかっていない。 int main(void) { int *p, *q; *p = 0; *q = 0; } これがなぜダメなのか、わからない。
2011-11-06 00:02:38
tt4cs
@tt4cs
@ebc_2in2crc あー、ポインタは宣言しただけで、まだポインタの指し示す場所が正式に確保されているわけじゃないから、勝手に値を保存しちゃダメなんだ。。って理解で合ってます?
2011-11-06 00:13:32
🥔えび🦐➕️🍞➕️🔥➡️🍤
@ebc_2in2crc
@tt4cs はい。確保というかポインタがどこを指してるか?が定まっていないのに参照(代入操作ですが)しようとしているからだと思います。
2011-11-06 00:16:17
tt4cs
@tt4cs
@ebc_2in2crc たとえば、int a; p = &a; なら、ポインタpは変数aを指し示す。もしくは、p = (int *)malloc(sizeof(int)); とすれば、int 型の値1個分の場所がポインタpの指し示す場所として確保される。こんな感じでしょうか?
2011-11-06 00:25:54
sano66
@sano66
@tt4cs pが指す変数のポインタが未定義だからです。int *p;int x=1;p=&x;*p=0;printf("%d",x);
2011-11-06 04:19:29