其宣佈 翻譯型態是
之後利用 翻譯方式就跟一般陣列一樣
realloc()的做法是在新的位置宣佈好記憶體位置後
int **a,*b;
int m,n;
a=(int**)malloc(m*sizeof(int*)) ;
b=(int*)malloc(m*n*sizeof(int));
for(i=0;i<m;i++,b+=n)
a[i]=b;
因為電腦不知道要若何用你借來的記憶體
- NULL,則指向ptr的位置
- 非NULL,則指向新宣佈的位置
Size of the memory block 翻譯公司 in bytes.
(假設a為一個已malloc好的陣列,m為想要宣告的巨細)
而要怎麼調劑已宣佈的記憶體的巨細呢~?
所以要利用的時辰要轉成你要的型態
其需要一個參數:size
其宣告的型態是
a=(int*)realloc(a 翻譯公司sizeof(int)*m);
void * realloc ( void * ptr, size_t size );
以下是他在C library的界說
(假定要宣佈一個 m x n 翻譯陣列)
realloc()的回傳有兩種環境
malloc()是C說話裡面動態宣佈記憶體位置 翻譯函式
- NULL,電腦沒有空間可以借你
- 不是NULL,回傳分配好 翻譯記憶體位置給你
以下是分派一維陣列的範例
int *a;
a=(int*)malloc(m*sizeof(int));
然後回傳新的記憶體位置
要釋放記憶體的時候只需釋放 a 和 a[0] 便可
所以型態是 void *
malloc會回傳兩種成效
size則是"調劑之後 翻譯記憶體巨細"
以下為realloc的典範榜樣
。-> 翻譯社|,-> 翻譯公司|的-> 翻譯就需要用到 realloc() 這個函式
ptr是指向之前已宣告好的記憶體位置
ptr若是null,其功能就如同malloc()
void *malloc( size_t size);
那假設要宣告一個二維陣列呢?
意即其以BYTES(位元組)為單元
malloc()這個函式是在 stdlib.h 裡面提供 翻譯
則 a 為一個 m 巨細的陣列
本文出自: http://cfwei0111.pixnet.net/blog/post/25265983-%e3%80%8e%e7%ad%86%e8%a8%98%e3%80%8fmalloc-%e8%88%87-有關翻譯的問題歡迎諮詢天成翻譯社
文章標籤
全站熱搜