幾個關於GetMemory的經典問題

2021-10-08 22:38:58 字數 714 閱讀 5044

test1

void getmemory1(char *p)

void test1(void)

呼叫getmemory( str )後,str並未產生變化,依然是null。改變的只是str的乙個拷貝的記憶體的變化 。   

strcpy( str, "hello world" );程式執行到這將產生錯誤。

test2

char *getmemory( void )

void test( void )

test3

void getmemory( char **p, int num )

void test( void )

test4

void test( void )

執行正確,但有記憶體洩露。與test3存在同樣的問題,在執行malloc後未進行記憶體是否申請成功的判斷。此外,在free(str)後未置str為空,導致可能變成乙個「野指標」,應加上 str=null。

test5

char* getmemory(int num)

void test(void)

Getmemory的幾個經典的關於記憶體的筆試題

面試c 程式設計師時用得著的幾道題 getmemory的幾個經典的關於記憶體的筆試題 void getmemory1 char p void test1 void str一直是空,程式崩潰 char getmemory2 void void test2 void char getmemory3 vo...

關於 GetMemory解釋,短但精闢

不廢話就兩個函式乙個是錯的,乙個是修改過的都解釋一下 void getmemory char p void test1 void 形參不能改變實參所以p還是指向的空這是最扯淡的解釋,往深里想為什麼形參改變不了實參,這是因為她只是拷貝了實參的乙個副本 所以當你傳指標的時候雖然改變了形參,但是你只是改變...

GetMemory的典型例子

void getmemory char p void test void gcc編譯會出現段錯誤 程式首先申請乙個char型別的指標str,並把str指向null 即str裡存的是null的位址,str為null中的值為 呼叫函式 的過程 中做了如下動作 1 申請乙個char 型別的指標p,2 把s...