Копирование массива в C - PullRequest
       2

Копирование массива в C

1 голос
/ 12 февраля 2011

Что не так с этим утверждением? Это не копирует право.

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

Ответы [ 2 ]

7 голосов
/ 12 февраля 2011

memcpy принимает два адреса памяти в виде указателей (адресата и источника) и количества копируемых байтов.Теперь sizeof не возвращает размер блока памяти, на который указывает указатель, но размер самого указателя - либо 4 байта в 32-битной ОС, либо 8 байтов в 64-битной ОС.

3 голосов
/ 12 февраля 2011

sizeof(board) дает вам размер самого указателя, а не размер того, на что он указывает.Вы должны заменить его на фактическое количество байтов, которое вы хотите скопировать с board до new_board1.Не зная, как объявлены board и new_board1, я не могу помочь вам найти это число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...