簡體   English   中英

比較兩個地址,列出C

[英]compare two address, list C

如果我有一個長字符數組[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;
}

在此處輸入圖片說明

如何檢查新節點是否超出數組邊界?

這是評論

不要點贊 - 但請隨意 DV。

你問的問題很困難,回答起來並不容易。 您還需要考慮一些更復雜的情況,例如

在此處輸入圖片說明

或者在此處輸入圖片說明

或者在此處輸入圖片說明

小陣列會在很短的時間內變得支離破碎。 這是 uC 開發人員試圖避免這種內存分配的原因之一。 還有其他技術,如嵌入式編程中使用的池。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM