2011-02-12 56 views
1

這條語句有什麼問題?它不會正確複製。複製C中的陣列

memcpy(new_board1, board, sizeof(board)); 
+5

「不正確複製」以何種方式? –

+0

以及會發生什麼? – mingos

+2

你可以顯示board和new_board的聲明嗎? – jwismar

回答

7

memcpy以指針形式(目標和源)和要複製的字節數接受兩個內存地址。現在,sizeof不會返回指針指向的內存塊大小,而是指針本身的大小 - 32位操作系統上的4個字節或64位操作系統上的8個字節。

+3

或在16位操作系統上的2個字節;) – Olhovsky

+0

你回答我的問題,謝謝! – nubela

+2

或8位操作系統上的1個字節。 –

3

sizeof(board)給你指針本身的大小,而不是指向它的大小。您應該將其從您想要從board複製的實際字節數替換爲new_board1。不知道boardnew_board1是如何聲明的,我無法幫你找到那個數字。