c中的链表(我在这里做错了什么?)

阿拉什·赛迪(Arash Saidi)

我有这段代码,我不知道为什么这不起作用?inputData()函数似乎起作用,但是print方法仅将我发送到inputDate()的第一行打印为我已输入的尽可能多的行。

我从一个文件中一次读取一行,然后放入链接列表中,这就是问题所在。如果我在代码中传递值,那么没有问题吗?

//LINKED LIST
void inputData(char *l)
{
    struct lines *pNewStruct = (struct lines *) malloc(sizeof(struct lines));
    pNewStruct->line = l;

    //inserts if list empty, next set to null
    if(pFirstNode == NULL){
        pNewStruct->next = NULL;
        pFirstNode = pLastNode = pNewStruct;

    } else {

        //inserts if list contains one element
        //this is done to differentiate between first and last node
        if(pFirstNode == pLastNode) {
            pFirstNode->next = pNewStruct;
            pLastNode = pNewStruct;
            pNewStruct->next = NULL;

        //inserts elements when elements in list > 2
        } else {
            pLastNode->next = pNewStruct;
            pNewStruct->next = NULL;
            pLastNode = pNewStruct;

        }
    }
}

void printData()
{
    struct lines *temp = pFirstNode;

    while(temp != NULL)
    {
        printf("%s", temp->line);
        temp = temp->next;
    }
}
塞巴斯蒂安·劳伦(Sebastian-Laurenţiu)Plesciuc

对于每行,您应该动态分配新的内存,并将每行的内容复制到新分配的字符串中。否则,如果没有人跟踪为这些字符串分配的内存,或者这些字符串在堆栈中,则可能会丢失它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我在这里做错了什么?还是这是clang ++错误?

我在这里错了什么[写到新行中]?

我在这里做错了什么?~~ Python中的Tkinter

Powershell:如果array1中的项目包含array2中的项目,那么我在这里做错了什么

查找/问题:我在这里做错了什么?

传递函数调用以处理嵌套状态更改。我在这里做错了什么?

我正在尝试使用while循环从字符串中删除字母,直到没有剩下的为止。我在这里做错了什么?

将JavaScript函数用作“类”:在这里我做错了什么?

我在这里用echo list和bootstrap做错了什么?

将操作栏更改为工具栏,现在我强制关闭。我在这里做错了什么?

Scrapy递归解析:我在这里做错了

我在这里做错了什么(带有循环的问题)

Python3-我在这里做错了什么?

SAS:错误180-322语句无效或使用顺序不正确?我在这里做错了什么?

外部点击结束元素-我在这里做错了什么?

我在这里做错了什么

我知道我在这里用复利公式做错了

在检查不存在的xml节点时,我在这里做错了什么?

为什么我会收到此例外,我在这里做错了什么

我在这个 IF 中做错了什么?

尝试将 nlmrt 对象转换为 nls 对象时我在这里做错了什么

React Native 我在这里用常量做错了什么

mysql 变量有问题,我在这里做错了什么?

我无法使用 JPA 存储库进行保存。我在这里做错了什么?

我在这里用 find 和 string 做错了什么?

我在这里做错了什么?parse_item_page 对我不起作用

我在这里做错了什么?(AppleScript 删除字符串的多个部分)

io.Pipe() 没有按预期工作。我在这里做错了什么?

我在这里用 nodejs 和 joi 做错了什么