C语言指针越界问题,大神指教!!!

C语言指针越界问题,大神指教!!!int * * p;
int a[10];

*p = a;为什么不对啊?*p不也是指向int类型的指针,a为数组首地址,也是int型,为什么会出问题??大神帮忙啊!!!!!!

*p是指向int类型的指针,a为数组首地址,这些理解都是对的,

但是,p没有被初始化啊,你能直接是用没有被初始化的变量嘛,那肯定是不行的啊.

所以正确的做法先给p绑定堆内存就可以这样写了.

#include <iostream>
using namespace std;
int main()
{

int **p=new int *;
int Array[10] = {1,2,3,4,5,6};
*p = Array;
cout << (*p)[1] << endl;

system("pause");
return 0;
}
编译完全通过.这里不贴出来了.点我头像进群.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-12
int *p;   //这样写才对
int a[10];
p = a;

追问

我知道这样写是对的,我是想知道那种写法问题出在哪里?

相似回答