carbon的記憶體管理函式學習
1)在早期的mac os 8/9作業系統採用
分配和釋放固定大小的記憶體
ptr newptr(size bytecount);
ptr newptrclear(size bytecount);
void disposeptr(ptr p);
分配和釋放可變的記憶體
handle newhandle(size bytecount);
handle newhandleclear(size bytecount);
handle newemptyhandle(void);
handle newemptyhandlesys(void);
void disposehandle(handle h);
改變固定和可變大小記憶體
size getptrsize(ptr p);
void setptrsize(ptr p,size newsize);
size gethandlesize(handle h);
void sethandlesize(handle h,size newsize);
設定可變記憶體的屬性
void hlock(handle h);
void hunlock(handle h);
void hpurge(handle h);
void hnopurge(handle h);
sint8 hgetstate(handle h);
void hsetstate(handle h,sint8 flags);
管理可變記憶體
void emptyhandle(handle h);
void reallocatehandle(handle h,size bytecount);
handle recoverhandle(ptr p);
void reservemem(size cbneeded);
void movehhi(handle h);
void hlockhi(handle h);
操作記憶體塊
void blockmove(const void *srcptr,void *destptr,size bytecount);
void blockmovedata(const void *srcptr,void *destptr,size bytecount);
oserr ptrtohand(const void *srcptr,handle *dsthndl,long size);
oserr ptrtoxhand(const void *srcptr,handle dsthndl,long size);
oserr handtohand(handle *thehndl);
oserr handandhand(handle hand1,handle hand2);
oserr ptrandhand(const void *ptr1,handle hand2,long size);
分配主要指標
void moremasterpointers(uint32 incount);
訪問記憶體環境和釋放記憶體
long freemem(void);
void purgemem(size cbneeded);
size maxmem(size *grow);
long maxblock(void);
void purgespace(long *total,long *contig);
long stackspace(void);
size compactmem(size cbneeded);
檢查錯誤
oserr memerror(void);
2) 在新的mac os x採用
1) cfallocator提供的api
由於我們現在的大部分程式是採用c或c++來書寫,所以非常小的使用這些函式,幾乎在程式都不大可能用到,用到最多還是c和c++提供的malloc和new函式。
學習筆記1
struct test test int x void fun class test1 test1 int x void fun int main void test1 a 行1 a.fun 行2 test1 b 行3 b.fun 行4 test c 行5 c.fun 行6 test d 行7 d....
學習筆記1
1 字串原地逆序 使用臨時變數 void reverse string s 5 求平均值 避免溢位 int f int x,int y 6 楊氏矩陣 bool young int a m n int x return false 7 十進位制轉十六進位制 string decimaltohexade...
學習筆記1
第二單元 linux的基本操作 1.改變使用者的密碼 passwd命令 注 a.只有root使用者可以修改其他使用者的密碼。普通使用者只能修改自己的密碼,且密碼必須設定地較為複雜,否則修改不成功 b.若執行passwd命令時後面不加使用者名稱,表示的是修改當前使用者的密碼。2.系統使用者的分類 注 ...
學習筆記。1
login.php 接收 errno的值 if empty get errno loginprocess.php 接受使用者資料 id post id 2.密碼 password post password 到資料庫去驗證,mysql擴充套件庫,mysqli擴充套件庫 1。得到連結 1.得到連線 c...
學習筆記1
使用的模組 import tensorflow as tf import numpy as np 計算圖 tf.get default graph 獲取當前預設的計算圖 a.graph 檢視張量所屬的計算圖 g1 tf.graph 生成新的計算圖 with g1.as default 把g1設定為預...