■
http://d.hatena.ne.jp/w_o/20140827#1409138046
聞かれたので書いておくと、
#include <stdio.h> int func(int *p, unsigned int i) { int *p2; p2 = &p[i]-1; printf("A:%d\n", *p2); p2 = &p[i-1]; printf("B:%d\n", *p2); } int data[] = {1,2,3}; int main() { func(data+1, 0); }
i が unsigned int かつ、ポインタが64bitかつint が32bit だと、 i=0; i-1 は 4294967295 になるので、p[4294967295]にアクセスするという問題でした。
わからなかった人は明日からC/C++使うのをやめてasm書きましょう。