簡體   English   中英

檢查變量是靜態分配還是動態分配?

[英]Check if a variable was statically or dynamically allocated or not?

我正在實現自己的malloc和free函數。 如何進行將動態變量傳遞給靜態變量的錯誤檢查? 假設我有:

char foo[10];
void *bar = malloc(5); 

void free(void *p)

有沒有辦法告訴用戶這是一個錯誤?

free(foo)

最好的選擇是在內存管理功能中維護分配的指針表。

釋放內存時不要忘記刪除條目。

這聽起來很瘋狂,

您需要在列表/結構中維護自定義malloc()函數分配的指針。 然后,在使用自定義的free()函數時,請檢查所維護的列表/結構內部是否存在變量。

暫無
暫無

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

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