如何在C中创建指向2D数组的指针?

时间:2015-04-28 08:51:07

标签: c pointers

我有一个像这样的2D数组,我想要一个指向它的指针。

目前我有这个:

char* recv_args_msg_queue[20];
char** ref_temp = &recv_args_msg_queue[0];
char*** ref_queue = &ref_temp;

但我觉得我的方式真的很愚蠢。有没有办法在一条线上做到?

注意:

char* recv_args_msg_queue[20];稍后在我的代码中正确分配为一个数组。我只想要动态分配,否则我可以写:

char recv_args_msg_queue[20][another_number_here];

1 个答案:

答案 0 :(得分:3)

使用typedef for your array type可以更轻松地获取指针。

您的代码如下所示:

typedef char* msg_queue20[20];

msg_queue20 recv_args_msg_queue;
msg_queue20* ref_queue = &recv_args_msg_queue;

请务必阅读我发布的链接,因为它包含important recommendations