我已声明了一个全局数组char *people[][2]
。该数组的目的是以:
people[0][0] = "John" people[0][1] = "Smith"
people[1][0] = "Frank" people[1][1] = "Jones"
... ...
people[NumOfNames][0] = "Lisa" people[NumOfNames][1] = "Murray"
其中 NumOfNames
是我程序中函数中计算的整数变量。一旦为NumOfnames
存储了此值,如何使用malloc
将内存分配给people
,以使其大小[NumOfNames]*[2]
?
一旦您知道多维数组的语法很容易:
size_t peopleCount = ...;
char* (*people)[2] = malloc(peopleCount*sizeof(*people));
请注意,people
与malloc()
ED数组一样,是指向数组的第一个元素的指针i。e。指向char
的两个指针的指针。malloc()
调用简单地分配了peopleCount
的内存此类元素。通过使用此指针类型,您可以使用malloc()
ED数组与您在问题中使用people
数组完全相同的方式。