在C中创建字符串的2D数组?

在C中创建字符串的2D数组?,c,arrays,multidimensional-array,C,Arrays,Multidimensional Array,也可以称为3D数组,因为每个字符串本质上都是它自己的数组 将采用以下格式,每行=一个新的“订单” [[第一名,第二名,DOB,报纸]] [[第一名,第二名,DOB,报纸]] 数组的内容将是所有字符串,即使DOB的格式为23012017,然后在必要时转换为整数 尝试使用此指针数组,但不确定如何使用它 字符*预订[][2] char firstname[20],secondname[20],dob[8] char*bookings[][0]=firstname,*bookings[][1]=seco

也可以称为3D数组,因为每个字符串本质上都是它自己的数组

将采用以下格式,每行=一个新的“订单”

[[第一名,第二名,DOB,报纸]]

[[第一名,第二名,DOB,报纸]]

数组的内容将是所有字符串,即使DOB的格式为23012017,然后在必要时转换为整数

尝试使用此指针数组,但不确定如何使用它

字符*预订[][2]

char firstname[20],secondname[20],dob[8]


char*bookings[][0]=firstname,*bookings[][1]=secondname,*bookings[][2]=dob

我想你需要的是一个结构和一个普通的1D数组。比如:

struct order {
    char FirstName[42];
    char SecondName[42];
    char DOB[42];
    char Newspaper[42];
}
以及在您的代码中,例如在main中

struct order[42];
然后你会:

strcpy(order[0].FirstName, "Donald");
strcpy(order[0].SecondName, "Duck");
... and so on

您的问题是什么?为什么不使用结构数组?数组通常应用于统一数据。对异构信息使用结构。如果愿意,char array3D[42][42][42]可以是字符串的2D数组或char的3D数组。但我觉得你需要一个包含Strings的结构数组这是一个典型的XY问题。您描述了如何解决问题,但没有描述真正的问题AHH,-所有缓冲区大小和XY问题的答案。@chux是的,就是这样。答案是-