gpt4 book ai didi

c++ - 指针数组和指向指针数组的指针

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:51 24 4
gpt4 key购买 nike

我不太明白这里的错误在哪里:

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]

所以这条线对我来说似乎是对的

最佳答案

因为 pparrA pointer to a int* array[22] 所以你需要写

pparr = &parr;

您需要在指针中存储地址而不是指针本身。

当你有的时候是一样的

int a=3;
int *b;
b=&a;

你在b中存储了a的地址,同样你需要在pparr中存储parr的地址

编辑:澄清 OP 的评论

您不能分配第一个元素的地址,而是指向第一个元素的指针的地址。(因此 pparr = &parr;)

关于c++ - 指针数组和指向指针数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com