#define safe_memory
#include
"memmanage.h"
#include
#define n 10
void
main()
;for
(int i =
0; i < n; i++
)show
(p_memory)
;//釋放記憶體
free
(p_addr[0]
);free
(p_addr[0]
);free
(p_addr[0]
);free
(p_addr[5]
);free
(p_addr[9]
);show
(p_memory)
;//清空記憶體
clear
(&p_memory)
;show
(p_memory)
;system
("pause");
}
#pragma once
#ifdef __cplusplus
extern
"c"memoryinfo;
typedef
struct memmanage
memmanage;
memmanage* p_memory;
//初始化節點
void
initnode
(memmanage* p_node)
;//顯示鍊錶狀態
void
show
(memmanage* p_head)
;//新增節點(新增記憶體)
void
(memmanage*
* pp_head, memoryinfo* p_meminfo)
;//查詢節點
memmanage*
findnode
(memmanage* p_head,
void
* p_addr)
;//修改節點
void
modification
(memmanage* p_head,
void
* p_addr, memoryinfo* p_newmem)
;//刪除節點
void
deletenode
(memmanage*
* pp_head, memoryinfo* p_deladdr)
;//分配記憶體
void
*mymalloc
(size_t memsize)
;//擴充套件記憶體
void
*myrecalloc
(void
* p_oldaddr, size_t newsize)
;//釋放記憶體
void
myfree
(void
* p_addr)
;//清空記憶體
void
clear
(memmanage*
* pp_head)
;#ifdef __cplusplus
}#endif
#include
"memmanage.h"
//初始化節點
void
initnode
(memmanage* p_node)
}//顯示鍊錶狀態
void
show
(memmanage* p_head)
else
}//新增節點(新增記憶體)
void
(memmanage*
* pp_head, memoryinfo* p_meminfo)
else
p_bak->p_next = p_new;}}
//查詢節點
memmanage*
findnode
(memmanage* p_head,
void
* p_addr)
else
p_head = p_head->p_next;}}
return
null;}
//修改節點(擴充套件記憶體)
void
modification
(memmanage* p_head,
void
* p_addr, memoryinfo* p_newmem)}}
//刪除節點(釋放記憶體)
void
deletenode
(memmanage*
* pp_head, memoryinfo* p_deladdr)
else
free
(p_res->p_meminfo->p_memaddr)
; p_res->p_meminfo->p_memaddr =
null
; p_bak->p_next = p_res->p_next;
free
(p_res)
; p_res =
null;}
}}}//分配記憶體
void
*mymalloc
(size_t memsize)
//擴充套件記憶體
void
*myrecalloc
(void
* p_oldaddr, size_t newsize)
//釋放記憶體
void
myfree
(void
* p_addr)
}//清空記憶體
void
clear
(memmanage*
* pp_head)
elseif(
null==(
*pp_head)
->p_next)
else
free
(*pp_head)
;*pp_head =
null;}
puts
("**********====記憶體已清空**********====");
}
C語言單鏈表
include include include define error 0 typedef struct lnode lnode,linklist linklist initlist linklist l node next null l node return l int listlength ...
c語言 單鏈表
單鏈表,顧名思義是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。我們在這裡使用c語言實現 h 檔案 pragma on...
C語言單鏈表
學過線性表中的順序表的都知道,順序表裡的資料在物理記憶體上是相鄰的,所以當我們在順序表中想要訪問下乙個元素時可以直接去訪問,就像陣列一樣。但是單鏈表卻不同,單鏈表的資料儲存的位置是動態分配的,也就是說單鏈表的儲存在物理記憶體上不是相鄰的,所以我們就只能通過指標這種方式來把單鏈表串起來,通過指標來訪問...