微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

比较两个地址,列表C

如何解决比较两个地址,列表C

如果我有一个很长的char数组[100],其中存储了一个结构列表,并且如果我想最后添加一个结构,该如何检查它是否超出边界?

例如,

static char arr[100];
typedef NODE* node_ptr;

typedef struct node
{
   char a;
   char b;
   int size;
   node_ptr next;
}NODE;

//arr already contains few node in it.

//size: the new node size,I want to add in the end
node_ptr add_node(node_ptr last,size_t size)
{
    node_ptr new;
    if(last+2*sizeof(NODE)+size<arr+100)
         //add new node
       return new;
}

enter image description here

如何检查新节点是否超出数组边界?

解决方法

这是COMMENT

不要投票-可以随意使用DV。

您问的是一个难题,很难回答。您还需要考虑一些更复杂的情况,例如

enter image description here

enter image description here

enter image description here

小型阵列将在很短的时间内变成碎片。这是uC开发人员尝试避免这种内存分配的原因之一。嵌入式编程中还有其他类似池的技术。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。