[問題] C 指標與副程式問題

看板C_and_CPP作者 (pica)時間15年前 (2010/04/04 12:06), 編輯推噓0(009)
留言9則, 5人參與, 最新討論串1/2 (看更多)
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 我宣告了2個矩陣A, B A先經過一個副程式FunA處理後, 我再讓B=A, B再經過另一個副程式FunB, 我發現他會使A的值改變 [不過A也不會等於B] 希望得到的正確結果: 讓最後的結果, A不會受到FunB的影響改變 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++, Windows 有問題的code: (請善用置底文標色功能) #include <iostream> #define DimX 2501 void FunA(float*); void FunB(float*); using namespace std; void main() { float A[DimX]={0}; float B[DimX]={0}; FunA(&A[0]); for(int i=0; i<Dim; ++i) { B[i]=A[i]; //A複製一份給B } FunB(&B[0]); // FunB 會影響 A的值?? system("pause"); } void FunA(float* data) { ................. } void FunB(float* data) { .................. } 補充說明: 自學C, 若是太簡單的問題, 請鞭小力一點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.198.94.135

04/04 20:10, , 1F
描述的語意 有點看不懂
04/04 20:10, 1F
※ 編輯: einstein328 來自: 60.198.94.135 (04/04 20:30)

04/04 20:32, , 2F
表達能力太差, 不知道這樣, 有沒有清楚一點
04/04 20:32, 2F

04/04 21:05, , 3F
A和B指向相同位置 至於A和B內容為什麼不同 我也不清楚~~"
04/04 21:05, 3F

04/04 21:08, , 4F
我想問題在你的函數裡面吧
04/04 21:08, 4F

04/04 21:17, , 5F
抱歉 我搞錯了並沒有A和B指向相同位置
04/04 21:17, 5F

04/04 21:18, , 6F
非常抱歉啊
04/04 21:18, 6F

04/04 21:25, , 7F
@netsphere : FunB 只有輸入B, 但是為什麼會影響A
04/04 21:25, 7F

04/04 21:26, , 8F
改用malloc/new來處理陣列
04/04 21:26, 8F

04/04 21:31, , 9F
光上面的程式碼,看起來沒問題。
04/04 21:31, 9F
文章代碼(AID): #1Bk837pb (C_and_CPP)
文章代碼(AID): #1Bk837pb (C_and_CPP)