首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组地址的地址

数组地址的地址
EN

Stack Overflow用户
提问于 2013-06-14 00:13:05
回答 3查看 130关注 0票数 1

如果我定义了一个变量:

int (**a)[30];

它是指针。这个指针指向一个指针,该指针指向一个包含30个整数的数组。

如何声明或初始化它?

代码语言:javascript
复制
int (**a)[10] = new [10][20][30];
int (**a)[10] = && new int[10];  

并不是所有的都能正常工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-14 01:14:50

对于如何初始化a的问题(无论这是否是您实际需要的),直接答案是

代码语言:javascript
复制
int (**a)[10] = new (int (*)[10]);

我不认为这实际上是您想要的;您可能希望将指针初始化为指向实际的数组,无论哪种方式,std::vector都是更好的方法。

票数 4
EN

Stack Overflow用户

发布于 2013-06-14 00:28:44

如果你想要问题的答案,那么你可以这样做:

代码语言:javascript
复制
int a[30];
int (*b)[30] = &a;
int (**c)[30] = &b;

但这不太可能是你想要的,正如其他人所评论的那样。你可能需要阐明你的潜在目标--人们只能猜测不同的情况。

根据MooingDuck的评论,我实际上可以看到一种方法,可以不使用typedef来实现,但不能直接使用:

代码语言:javascript
复制
template <typename T>
T *create(T *const &)
{
    return new T;
}

int (**a)[30] = create(a);

但这并不是很漂亮。

票数 0
EN

Stack Overflow用户

发布于 2013-06-14 01:23:20

你希望通过编写&(&var)得到什么?这相当于address of address of a block of memory。仅仅为了满足代码中的*数量而做这样的事情是没有意义的。

想想看--你怎么才能得到一个地址的地址呢?即使是靠一些纯粹的运气或奇怪的语言技巧,你也不可能成功。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17091991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档