【发布时间】:2017-06-23 16:34:25
【问题描述】:
我目前正在使用 C 语言进行一些编码,只是为了提高我的 C 技能。我正在做的是将单词存储在分配的动态内存中,但在使用 **pointer 时遇到了一些困难......
例如,
while ((ch = getchar()) != EOF)
如果我输入abcd efgh,字符“abcd”应该存储在ptr[0][i]中,第二个字符“efgh”应该存储在ptr[1][i]中,这应该通过循环来完成。
我想通过初始化来实现,
char **ptr = (char**)malloc(sizeof(char*)*n);
这可能吗??
任何帮助将不胜感激!
【问题讨论】:
-
不确定你的表达中的
i是什么意思。我假设你的意思是你想将字符串存储在ptr[0]、ptr[1]等位置。你的开始几乎是正确的。 You don't want to castmallocreturn。此外,一旦分配了ptr,您将需要分配每个字符串指针,例如。ptr[0] = malloc(sizeof(char) * string_buffer_length)等 -
是的,但这会分配 n 个 指针 指向任何内容。然后,您必须为每个指针分配一个字符缓冲区。
标签: c pointers computer-science