一系列指针和指针指向一系列指针
Array of pointers and pointer to an array of pointers
我不太了解此处的错误在哪里:
int *parr[22]; // Array of int* pointers
parr[0] = ptr1;
parr[1] = ptr2;
//...
int *(*pparr)[22]; // A pointer to a int* array[22]
pparr = parr; // ERROR
错误告诉我error C2440: '=' : cannot convert from 'int *[22]' to 'int *(*)[22]'
类型怎么不相等?数组的名称应等于对数组的第一个元素的引用,例如
parr => &parr[0]
所以这条线对我来说似乎是正确的
as pparr
是 A pointer to a int* array[22]
,因此您需要写
pparr = &parr;
您需要将地址存储在指针中,而不是指针本身。
这与您有
时一样int a=3;
int *b;
b=&a;
您正在存储A中的地址,同样,您需要将parr
的地址存储在pparr
编辑:要澄清OP的评论
您无法分配第一个元素的地址,而是指向第一个元素的指针的地址。(因此pparr = &parr;
)
int*[22]
可以衰减到 int**
,但是您不能将int**
分配给int*(*)[22]
。
int *(*pparr)[22]; //This one is an array of function-pointers returning an int pointer.
int **pptr; //Points to an array of pointer
所以你可以写
pptr = parr;
相关文章:
- 使用指针遍历一系列基元类型声明?
- 为什么要为指针返回类型返回一系列字符?
- 如何计算一系列指针的内容长度
- 优化调用一系列功能指针
- 使用一系列指针对计算机来操纵指向(C )的指针
- 创建一系列超类的指针,以分配继承的类
- C 在堆栈上对对象(节点)做出一系列指针
- 指针的一系列指针:管理不同语言的字符串
- 一系列char指针
- 如何将内存分配给一系列指针为结构
- 是否可以使用一系列智能指针来自动通过其索引更新其值
- 将指针或一系列指针存储在动态阵列中
- 浅层复制一系列班级指针
- 将一系列指针传递到类对象
- 存储在存储在堆栈中的堆与矩阵中的矩阵可以看作是一系列指针
- 为没有默认构造函数的类创建一系列智能指针
- 如何将一系列指针分配给Usinig New
- 对需要变量传递的对象使用一系列指针
- 这是否会导致一系列指针
- 当返回一系列字符或指针到char文字时的区别