我正在为我的学校制作一个外壳,我实际上正在研究管道|
。为了解析,我需要在char ***
中放入一些东西。如何malloc
char ***
?
malloc
并不关心您要将其返回值用作哪种类型。因此,您可以像malloc
其他任何东西一样malloc
char***
。
大多数时候,您将尝试动态分配某个时间T
数组,您需要将其存储在类型为 T*
的变量中。因此,如果您需要一个char**
数组(例如,argv
向量数组(,您可以将它们存储在类型为 char***
的变量中。(T
是char**
所以T*
是(char**)*
这是char***
。
做malloc的一般形式是:
T* result = malloc(number_of_elements * sizeof(*result));
如果像这样编写malloc
调用,则可以在不更改 malloc 调用的情况下更改结果的类型。
请记住,malloc
返回的内存区域不会以任何方式初始化。如果要分配数组数组,则可能需要确保分配的内存初始化为零
T* result = calloc(number_of_elements, sizeof(*result));
无论如何,您都需要单独实际分配子数组。