void swap (int *px, int *py) {
int temp;
temp = *px;
*px = *py;
*py = temp;
}
這將交換兩個變量,這對我來說看起來沒問題。用指針交換變量
現在如果我將其更改爲
void swap (int *px, int *py) {
int *temp;
*temp = *px;
*px = *py;
*py = *temp;
}
通知INT *臨時
這部作品雖然反正,但溫度而沒有被初始化解引用。
什麼價值又怎會不工作?
一樣,如果我想創建一個名爲PROC方法我怎麼能出示擔保程序會崩潰?我想我應該在堆棧上留下一些東西。
int main() {
int a = 1, b = 2;
proc(/* Some args might go here */);
swap(&a, &b);
}
這帶來了不確定的行爲就我所知。 解引用和寫入NULL將會保證我相信的崩潰。 – 2013-03-18 20:35:43
@ Magtheridon96它也是UB:http://stackoverflow.com/questions/2727834/c-standard-dereferencing-null-pointer-to-get-a-reference [在代碼未初始化指針](HTTP的 – 2013-03-19 10:14:40
可能重複: //stackoverflow.com/questions/5870038/uninitialized-pointers-in-code) – ecatmur 2013-03-19 10:48:18