gpt4 book ai didi

c - 如何分配 char 指针的 3d 数组?

转载 作者:行者123 更新时间:2023-11-30 18:10:46 25 4
gpt4 key购买 nike

我有一个 3d 字符指针数组:char ***semicols。我希望这些值类似于

semicol[0][0] = "ls"
semicol[0][1] = "~"
semicol[1][0] = "man"
semicol[1][1] = "grep"

等等。我有一个 char **args 数组,其中存储了该数组,并且我还知道该数组中分号的数量。我想创建较小的 char** ARGS ,其具有上述结构,因此 semicol[0] = {"ls", "~"}。但我事先不知道每个分号参数的字符串数量,因此我无法将其设为静态 char *semicols[][]。那么我如何合理地为 3d 数组进行 m​​alloc,或者是否有更好的方法来完成我尝试做的事情?

最佳答案

您不需要 3d 字符指针数组,但需要 2d 字符指针数组。

来自Best way to allocate memory to a two-dimensional array in C? ,您可以分配字符指针的二维数组,如下所示。

char* (*semicol) [col] = malloc(sizeof(char* [row][col]));

或者

char* (*semicol) [col] = malloc(sizeof(*semicol) * row);  //avoids some size miscomputations, especially when the destination type is later changed. //Refer chqrlie's comment.

成功分配内存后,可以执行 semicol[i][j] = "text";

您可以通过调用free(semicol);来释放分配的内存

关于c - 如何分配 char 指针的 3d 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55662969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com