gpt4 book ai didi

在 C 中创建从 getline() 读取的单词的 char**

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:21 27 4
gpt4 key购买 nike

我正在尝试创建一个动态字符**,因为它们是从 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com