我正在为我的学校制作一个外壳,实际上我正在制作管道|
。为了解析,我需要将一些内容放入 char ***
中。我该怎么办malloc
一个char ***
?
最佳答案
malloc
并不关心您将使用其返回值的类型。因此,您可以 malloc
一个 char***
,就像 malloc
任何其他东西一样。
大多数时候,您将尝试动态分配一段时间T
的数组,您需要将其存储在T*
类型的变量中。因此,如果您需要一个 char**
数组(例如,一个 argv
vector 数组),您可以将它们存储在 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));
无论如何,您都需要实际单独分配子数组。
关于c - Malloc 一个字符 ***,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099413/