C言語なら俺に聞け(入門篇) Part 21
■ このスレッドは過去ログ倉庫に格納されています
0805デフォルトの名無しさん
2007/11/27(火) 04:48:24ポインタはアドレスを指し示す以外に能が無い。間接参照は*演算子のおかげ。
整数を格納したいなら、そのポインタの指すアドレスを先頭としたメモリを確保しろ。
(エラー処理は省略)
// 以下はNG
int main(int argc, char **argv)
{
int *i; // この時点ではポインタiの指すメモリアドレスは不定
*i = 123; // iの指す不定アドレスのメモリ領域に整数123を代入しようとしている
printf("%d", *i);
return 0;
}
// 以下はOK
int main(int argc, char **argv)
{
int *i = malloc(sizeof(int)); // ポインタiにはmallocで確保されたメモリ領域の先頭アドレスが入る
*i = 123; // iの指すintバイトのメモリ領域に123を代入
printf("%d", *i);
free(i);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています