【发布时间】:2017-06-11 00:13:54
【问题描述】:
我正在尝试解决以下问题,但尚未成功:
我有一个二维指针数组:
int* a[16][128];
现在我想创建一个指向这个数组的指针,这样我就可以在上面使用指针算法了。 因此,像这样:
ptr = a;
if( ptr[6][4] == NULL )
ptr[6][4] = another_ptr_to_int;
我已经尝试了一些变体,但它要么在第一行失败,要么在 if 条件下失败。
那么,如何解决呢?我想避免使用模板类等。代码是嵌入式应用程序的时间关键部分,并且内存非常有限。因此,我希望 ptr 的长度仅为 sizeof(int*) 字节。
【问题讨论】:
-
你初始化了
a的所有元素了吗?即int* a[16][5] = {NULL};,否则您的计算机当前可能是spray painting your cat purple。 -
auto ptr = a;应该可以完成这项工作,因此您的ptr将具有正确的类型。 -
编译器不知道自动
-
C 和 C++ 是不同的语言。选择一个。您的编译器不支持
auto作为类型说明符,这表明您要选择 C。