[問題] 動態陣列傳值
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC 2010 #Express
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
動態陣列傳值的問題
餵入的資料(Input):
假設現在有兩個二維動態陣列
int num = 5;
int **a = new int *[num];
int **b = new int *[num];
for(int i =0; i<num; i++)
{
for(int j =0; j<num; j++)
{
a[i][j] = 10;
b[i][j] = 7;
}
}
則此時 a: 10 10 10 10 10...(皆是10)
b: 7 7 7 7 7... (皆是7)
但是如果現在假設
b = a;
b[2][2] = 3;
則 a[2][2] 的值也會變成3
是因為我的動帶陣列傳遞的是址不是值的關係嗎?
預期的正確結果(Expected Output):
a[2][2] = 10
錯誤結果(Wrong Output):
a[2][2] = 3
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.73.128
推
12/14 03:05, , 1F
12/14 03:05, 1F
→
12/14 03:06, , 2F
12/14 03:06, 2F
那如果我現在想把a的值丟到b裡面,但是改b的時候不會改到a值該怎麼改呢?
※ 編輯: pulajin 來自: 140.115.73.128 (12/14 03:10)
推
12/14 03:16, , 3F
12/14 03:16, 3F
→
12/14 03:17, , 4F
12/14 03:17, 4F
→
12/14 03:18, , 5F
12/14 03:18, 5F
→
12/14 06:10, , 6F
12/14 06:10, 6F
抱歉少打一個* XD
※ 編輯: pulajin 來自: 114.34.30.120 (12/14 10:40)
→
12/14 11:31, , 7F
12/14 11:31, 7F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章