创建一个d维指针

Bia*_*gio 4 c pointers

我们用来表示带符号的指针*.迭代该过程,我们得到一个"双"指针**,一个"三"指针***,更一般地说,一个"d维"指针(对于每个d正自然数).

问题:给定广告作为输入,将S定义为d维指针.

因为我几天前才开始研究动态结构,不幸的是我对这个问题有点麻烦.有没有人有建议/提示?

提前谢谢你,我为我可能太基本的问题道歉.

Ps:我使用了"指针"这个词而没有指明它的类型只是为了简洁起见.

das*_*ght 5

只要满足两个条件,此问题就在C中有解决方案:

  • d在编译时已知值,并且
  • d 具有预定义的限制,例如10

您可以通过定义一系列并"粘贴" d作为标记的值来解决此问题:

#define D_PTR(d,T) D_PTR##d(T)
#define D_PTR0(T) T
#define D_PTR1(T) T*
#define D_PTR2(T) T**
#define D_PTR3(T) T***
...
#define D_PTR10(T) T**********
Run Code Online (Sandbox Code Playgroud)

现在你可以d像这样声明-dimension指针:

D_PTR(5,int) ptr5 = NULL;
Run Code Online (Sandbox Code Playgroud)

演示.