我似乎无法理解为什么我的指针在这种情况下会改变地址:
int *load(FILE *fp, int * vector, int w, int h){
//other coding
int array[w][h];
int *ptr = &array;
return ptr;
}
main(){
//other coding
int *ptr = load(file, vector, w, h);
printf("%d ", *(ptr));
printf("%d ", *(ptr));
}
在我的第一个printf("%p ", *(ptr));
它打印00000010
在我的第二个printf("%p ", *(ptr));
它打印0028fc6c
并且可以肯定的是,如果我打印"%d"
第一个值是好的,第二个不是。