我想将行从标准输入复制到字符指针数组。例如,如果用户输入以下“the\nquick\nbrown\nfox”,那么我想要一个看起来像这样的数组
arr[0] = "the" arr[1] = "quick" arr[2] = "brown" arr[3] = "fox"
有什么建议吗?
最佳答案
您需要确保不仅分配了一个指针数组,而且还为每个元素分配了空间。我没有像您应该的那样检查 NULL 指针,但这应该可以帮助您入门。
char **arr;
int maxWords = 3;
int i;
arr = malloc (sizeof (char *) * maxWords);
for (i = 0; i < maxWords; i++)
{
arr[i] = malloc (100);
fgets (arr[i], 99, stdin);
}
之后,您还需要释放该内存:
for (i = 0; i < maxWords; i++)
{
free (arr[i])
}
free (arr);
关于将行从标准输入复制到字符指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/459751/