指標傳遞分析與解決

2021-06-06 21:44:07 字數 905 閱讀 8802

---------------------------

mypointer_lference.exe - 應用程式錯誤

---------------------------

"0x6b207369" 指令引用的 "0x6b207369" 記憶體。該記憶體不能為 "read"。

要終止程式,請單擊「確定」。

要除錯程式,請單擊「取消」。

---------------------------

確定   取消  

---------------------------

//如下為出錯原始碼

void set_arrayvalue_error_01(unsigned char *tmp)

void testupdate_error_01()

;    //定義的陣列長度實際,被錯誤的指定為1,這裡要特別注意

set_arrayvalue_error_01(myarray);

printf("your name:%s\n",myarray);

}/************下面為朋友一些相應的解決方法****************/

void set_arrayvalue_solution_01(unsigned char *tmp)

void testupdate_solution_01()

;    //指定長度為100

set_arrayvalue_solution_01(myarray);

printf("your name:%s\n",myarray);

}//採用動態分配記憶體的方式

void set_arrayvalue_solution_02(unsigned char **tmp)

void testupdate_solution_02()

分析傳遞指標的指標

很多人都應該記得一道很經典的c的面試題 void newstring char arga 看到這個題目大家都應該知道答案,並能說出理由是 在傳遞過程中引數會在棧上做乙個複製品,在函式體內進行操作的是這個複製品。這也就時我們為什麼在休要修改乙個變數值是要傳遞指標的原因了。如圖所示 我們這時操作的是ar...

引用傳遞與指標傳遞

1.指標傳遞 指標傳遞本質上是值傳遞,它所傳遞的是乙個位址值。值傳遞的特點 被調函式對形式引數的任何操作都是作為區域性變數進行的,不會影響主調函式的實參變數的值。2.引用傳遞 引用傳遞中,區域性變數棧空間中存放的是由主調函式放進來的實參變數的位址。被調函式對形參的任何操作都被處理成間接定址,即通過棧...

C 陣列引用傳遞與指標傳遞

include include include using namespace std class sourcefile explicit sourcefile const char filename data filename const char data int size int main i...