2011-02-12 59 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是如何声明的,我无法帮你找到那个数字。