数组地址的地址
Address of address of array
如果我定义一个变量:int (**a)[30];
它是指针。这个指针指向另一个指针,该指针指向一个包含30个整型整数的数组。
如何声明它或初始化它?
int (**a)[10] = new [10][20][30];
int (**a)[10] = && new int[10];
都不行。
关于如何初始化a
(无论这是否是您实际需要的)的问题的直接答案是
int (**a)[10] = new (int (*)[10]);
我不认为这实际上是你想要的;你可能想初始化指针指向一个实际的数组,无论哪种方式std::vector
都是更好的方法。
如果你想要一个问题的答案,那么你可以这样做:
int a[30];
int (*b)[30] = &a;
int (**c)[30] = &b;
但这不太可能是你想要的,就像其他人评论的那样。你可能需要澄清你的潜在目标——否则人们只能猜测。
根据MooingDuck的评论,我实际上可以看到一种不需要typedef的方法,但不是直接:
template <typename T>
T *create(T *const &)
{
return new T;
}
int (**a)[30] = create(a);
你希望通过写&(&var)
得到什么?这相当于address of address of a block of memory
。这样做只是为了满足代码中*
的数量是没有意义的。
想想看——你怎么能得到一个地址的地址呢?即使你完全靠运气或奇怪的语言技巧做到了这一点,也不可能成功。
相关文章:
- 从 C++ 中的函数返回数组地址问题
- 打印字符数组地址的正确方法
- 字符数组地址和整数数组地址
- C++返回静态数组地址的函数
- C++ 在 64 位平台中传递字符数组地址
- 获取字符数组地址,然后转换为指针字符
- 如何指向实际元素而不仅仅是数组地址
- 如何使用数组地址反转数组
- 验证电子邮件地址和地址中的句点数
- 链表数组 – 地址簿
- 数组地址的地址
- 缺少存储数组地址的内存
- 将指针数组地址传递给函数并更新地址中的数据
- 通过复制将数组地址传递给匿名函数失败
- 数组地址不可见
- 不了解示例中的行为 - strcpy() 和返回本地数组地址的函数
- 保存数组地址的指针的地址是相同的
- 动态数组地址
- 在C++(代码块)中显示数组地址
- C++ 将数组地址分配给指针