c - 打印链表?

标签 c

运行以下代码时我的系统挂起。我试图了解链表和链表操作的基础知识。有人可以向我解释我做错了什么(不明白)。谢谢大家。

#include <stdio.h>
#include <stdlib.h>


typedef struct ListNodeT
{
    float power;
    struct ListNodeT *nextPtr;

}ListNodeType;

void ReadFileList(ListNodeType *Data);

int main(void)
{
    ListNodeType a;

    ReadFileList(&a);

    ListNodeType *node = &a;

    do
    {
        printf("%f", node->power);
        node = node->nextPtr;

    }while(node != NULL);

return EXIT_SUCCESS;
}

void ReadFileList(ListNodeType *Data)
{

    ListNodeType new[2];


    Data->nextPtr = &new[0];
    new[0].nextPtr = &new[1];
    new[1].nextPtr = NULL;

    Data->power = 0.1;
    new[0].power = 1.2;
    new[1].power = 2.3;

}

最佳答案

您正在用指向局部变量的指针填充 ReadFileList 中的 Data。当 ReadFileList 返回时,它们超出范围,因此您会导致未定义的行为。

关于c - 打印链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414913/

相关文章:

c - sizeof(*ptr) 和 sizeof(struct) 的区别

c++ - OS X 上的 OpenMP 汇编程序错误

c - 为什么我的程序不能正确检查参数数量?

c - Redis Makefile 如何包含头文件先决条件

c - 给定 k 组整数,找到所选 k 个元素之间的最小差异

java - 在 Java 上加载一个 dll 库

c - 在 C 中使用 "fscanf"如何拆分两个字符串?

c - WinCC C 脚本从字中读取位 - 一般 C 建议

c - 如何调试导致堆栈溢出错误的递归函数?

c - C 代码中的预期 }