c - 链表的意外行为

标签 c linked-list embedded

我正在尝试在 C 中使用一个简单的链表,但我遇到了一些麻烦。 我创建了一个结构节点

struct node{
    int value;
    struct node *next;
};

并写下主要代码

struct node *root;
struct node *conductor;

root = (struct node *)malloc(sizeof(struct node));
root->next = 0;
conductor = root;       

root->value = 1;

if ((root->value) == 1) 
    LED_GREEN = 1;
//LED_GREEN = 1;

我在嵌入式系统上运行它,只是比较根节点的值。我希望 LED 会亮起,但事实并非如此。任何人都知道为什么这没有按预期工作?

最佳答案

我自己解决了这个问题,但当我发布解决方案时,它可能对类似的问题有帮助。通过更改我的 IDE 的项目选项中的堆大小解决了这个问题。大小设置为 0,因此 malloc 无法分配内存。

关于c - 链表的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34899320/

相关文章:

c - mikroc for pic 中的任务出错

c - 棘手的表达式评估

客户端相同的套接字描述符

c - 为什么某些 WinAPI 函数需要将结构的大小作为参数传递?

c - 如何在没有头/尾指针的情况下将多个节点添加到C中的链表中?

embedded - 当断点停止代码执行时定时器/自动收报机会发生什么

c - 动态分配结构数组

java - java - 如何在不重新排序的情况下从列表中删除重复项?

python - 反向打印一个空间小于 O(n) 的不可变链表

c++ - 就嵌入式系统的大小而言,我可以获得多小的完整编译器(如 clang 或 gcc)?