c - Malloc 一个字符 ***

标签 c char malloc

我正在为我的学校制作一个外壳,实际上我正在制作管道| 。为了解析,我需要将一些内容放入 char *** 中。我该怎么办malloc一个char ***

最佳答案

malloc 并不关心您将使用其返回值的类型。因此,您可以 malloc 一个 char***,就像 malloc 任何其他东西一样。

大多数时候,您将尝试动态分配一段时间T的数组,您需要将其存储在T*类型的变量中。因此,如果您需要一个 char** 数组(例如,一个 argv vector 数组),您可以将它们存储在 char*** 类型的变量中。 (Tchar**,因此 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/

相关文章:

c - 代码有什么问题吗?打印值不符合预期

c++ - 套接字编程 : 'accept: Bad file descriptor'

c - 默认情况下,char 是有符号的还是无符号的?

Python程序如何计算字母c出现的次数

c - 释放 malloc 不会删除 char 数据

c - 返回 C 中文件的下一行

c++ - VS 2017 for C语言报错

c - Microhttpd 服务器不想发送页面

python - 将字符串的选择字符 append 到列表

检查 malloc 之前和 free C 之后的内存状态