我试图创建一个动态字符**的单词,因为它们是从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 - 创建从C语言的getline()读取的单词的字符**,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52377349/