gpt4 book ai didi

c - 为 char **foobar 或 char *foobar[] 分配 malloc,如何进行?

转载 作者:行者123 更新时间:2023-11-30 16:01:10 27 4
gpt4 key购买 nike

我想知道当你有一个单词数组(char **words 甚至 char *words[] 时如何分配内存。

最佳答案

你可以试试这个:

    char **words;
words = malloc(sizeof(char)*MAX_WORD_SIZE*MAX_NUM_WORDS);

if (words == 0)
{
printf("ERROR: Out of memory\n");
return 1;
}
.... <use words>
free(words);

其中 MAX_WORD_SIZE 是字符串可能具有的最大长度(减去“\0”终止字符); MAX_NUM_WORDS 是您要管理的最大字数。

上面的代码将分配内存来保存您想要管理的所有单词。

您还可以使用calloc,它的一大优点是将内存设置为“0”,这在处理字符串时非常有用:

    words = (char**)calloc(MAX_NUM_WORDS, sizeof(char)*MAX_WORD_SIZE);

关于c - 为 char **foobar 或 char *foobar[] 分配 malloc,如何进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000596/

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