作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道当你有一个单词数组(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/
我是一名优秀的程序员,十分优秀!