以下是遍历一个数组,使用指针,但是报错...请帮忙看看是什么问题,特别是 变量 len 初始化是 3,后面会被无缘无故地修改??
请使用C编译器
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[] = { 300, 100, 200 };
int len = sizeof(a) / sizeof(int);
int* p = malloc(sizeof(int*) * len);
int** pp = &p;
for (int i = 0; i < len; i++) // 前两次能正确输出 300,100,但是第三次循坏就出错了
{
*(pp + i) = &(a[i]);
printf("%p = %d\n", &(a[i]), a[i]); // 输出数组元素地址 及 值
printf("%p = %d\n", *(pp + i), **(pp + i)); // 输出数组元素地址 及 值
}
free(p); // 这里也报一个错误
system("pause");
return 0;
}