どこでもうまく行くかは知らないが、Visual Studio 2010で試したら、modifyでmainのtestを書き換えることができた。今更だし、だから何だと言う話だが...
#include <stdio.h> void modify(){ int temp = 0; int *p = &temp; for(int i = 0; i < 100; i++){ if(*(p + i) == 100){ *(p + i) = 200; } } printf("TempAddr = %p\n", &temp); } int main(){ int test = 100; modify(); printf("TestAddr = %p\n", &test); printf("TestValue = %d\n", test); return 0; }