我正在尝试创建一个动态字符**,因为它们是从 getline() 读入的
while ((lineLength = getline(&line, &n, stdin)) != -1) {
if(lineLength > 0)
{
if(line[lineLength - 1] == '\n')
{
line[lineLength - 1] = '\0';
}
}
}
但我在使用 malloc() 创建元素并为其动态分配内存时遇到问题。我目前正在尝试
char** words = (char**)malloc(x*sizeof(char));
但出现错误。实现此目标的最佳方法是什么?
最佳答案
sizeof(char)
不同于 sizeof(char*)
。 sizeof(char)
通常为 1,而指针的大小是实现定义的,但总是大于 1。你真的没有为你的指针分配足够的空间。因为你有一个指针的指针,我认为你真正想要的代码是
char** words = (char**)malloc(x*sizeof(char*));
关于在 C 中创建从 getline() 读取的单词的 char**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52377349/