C语言 malloc for a 2D array



我已声明了一个全局数组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));

请注意,peoplemalloc() ED数组一样,是指向数组的第一个元素的指针i。e。指向char的两个指针的指针。malloc()调用简单地分配了peopleCount的内存此类元素。通过使用此指针类型,您可以使用malloc() ED数组与您在问题中使用people数组完全相同的方式。

相关内容

  • 没有找到相关文章

最新更新