如何解决比较两个地址,列表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;
}
如何检查新节点是否超出数组边界?
解决方法
这是COMMENT
不要投票-可以随意使用DV。
您问的是一个难题,很难回答。您还需要考虑一些更复杂的情况,例如
小型阵列将在很短的时间内变成碎片。这是uC开发人员尝试避免这种内存分配的原因之一。嵌入式编程中还有其他类似池的技术。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。