【ANSI-C】 C言語なら俺に聞け! Part 128
■ このスレッドは過去ログ倉庫に格納されています
0557デフォルトの名無しさん
2006/08/03(木) 01:51:47ちょっとテストしてみたのですが
#include <stdio.h>
void add (int *p) {
*p += 10;
*(p+1) += 10;
}
int main (void) {
int a = 10, b = 20;
printf ("変数aの値は%d:アドレスは%p¥n", a, &a);
printf ("変数bの値は%d:アドレスは%p¥n", b, &b);
add (&a);
printf ("変数aの値は%d:変数bの値は%d¥n", a, b);
return 0;
}
変数 aと bのアドレスがとなりあってる場合、関数によって配列でもないのに変数 bの値が書き換えられてしまいます
仮に、配列を扱う関数で、配列の後ろに関係ない変数があった場合、
意図せず変数まで書き換えてられてしまう可能性もあると思うのですが、
そういうのは自分で注意するべきなのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています