#include #include#include
//指標做輸出:被呼叫函式分配記憶體 -----ok
//指標做輸入:主呼叫函式 分配記憶體
//求檔案中的兩段話的長度
int getmem(char **myp1, int *mylen1, char **myp2, int *mylen2)
strcpy(tmp1,
"abcdefg");
*mylen1 =strlen(tmp1);
*myp1 = tmp1; //
間接修改實參p1的值
tmp2 = (char *)malloc(100
);
if (tmp2 ==null)
strcpy(tmp2,
"11122233333");
*mylen2 =strlen(tmp2);
*myp2 = tmp2; //
間接修改實參p1的值
return0;
}int getmem_free(char **myp1)
free(*myp1); //釋放完指標變數 所致的記憶體空間
*myp1 = null; //把實參修改成null
*/char *tmp =null;
if (myp1 ==null)
tmp = *myp1;
free(tmp); //
釋放完指標變數 所致的記憶體空間
*myp1 = null; //
把實參修改成null
return0;
}void
main()
另外的乙個釋放函式:
int getmem_free0(char *myp1)free(myp1); //
釋放完指標變數 所致的記憶體空間
myp1 =null;
return0;
}void
main14()
if (p2 !=null)
getmem_free0(p1);
//在被呼叫函式中 把p1所指向的記憶體給釋放掉 ,但是 實參p1不能被修改成nulll 有野指標現象
getmem_free0(p2);
system(
"pause");
return
;}
C 入門day05(指標)
使用指標時,可以通過解引用的方式來找到指標指向的記憶體 指標前用星號 代表解引用,找到指標指向的記憶體中的資料 說 和 是起相反作用的 兩個符號 在32位作業系統下,指標占用4個位元組空間 64位 8個位元組 vs和dev編譯器都可以自己選擇用64位還是32位對 進行編譯 空指標 指標變數指向記憶體...
C提高 day03 二級指標做輸入第3種記憶體模型
include include include void main 排序之前 printf 排序之前 n for i 0 i 排序 交換的是 指標 for i 0 i 排序 交換的時候記憶體 for i 0 i 排序之前 printf 排序之後 n for i 0 i 釋放記憶體 for i 0 i...
C 物件模型 3 指標與陣列
一 c指標操作函式 new和delete對c 的程式設計師也許很熟悉,但是malloc和free被用來在c 中用來記憶體分配和釋放,很多c 開發者並不能游刃有餘的使用,下面例項解析malloc和free的使用。malloc void malloc long numbytes 該函式分配了numbyt...