10.19編寫一個函數 alloc(n) 用來在內存區開辟一個連續的空間(n個字節) 。 和 free(char * p),將地址p開始的各單元釋放。
阿新 • • 發佈:2017-08-04
null 地址 可用 第一個 ret 定義 define 編寫 bsp
#include <stdio.h> #define NULL 0 #define ALLOCSIZE 1000 //最大存儲數量 char allocbuf[ALLOCSIZE]; //定義一個存儲區 char * palloc = allocbuf; //palloc總是指向存儲區中第一個可用的地址 int main(){ return 0; } char * alloc(int n){ if(palloc+n < allocbuf+ALLOCSIZE){ palloc += n; return (palloc-n); //返回新開辟的存儲區的首地址 } else return NULL; //分配地址失敗,空指針不指向任何函數或者對象的地址 } void free(char * p){ if(p >= allocbuf && p < palloc){ palloc = p; }else printf("釋放內存失敗"); }
10.19編寫一個函數 alloc(n) 用來在內存區開辟一個連續的空間(n個字節) 。 和 free(char * p),將地址p開始的各單元釋放。