C提高 day03 指標的輸出模型

2022-03-27 06:53:21 字數 1205 閱讀 7947

#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...