C Сделать копию данных из структуры указателя - PullRequest
0 голосов
/ 03 мая 2020

У меня небольшая проблема с созданием копии данных.

В C У меня есть функция

struct data* copy_and_change(const struct data* input_data)

struct data содержит один указатель на struct header и несколько целых чисел

struct header - это структура, которая содержит информацию о пользователе (символы, целые числа ...)

struct data{
    struct header* info;  
    int salary;
};

Таким образом, для данных в памяти параметр const struct pointer.

My функция должна получить данные из параметра и создать копию этих данных, переставить их и вернуть указатель на новые данные (скопированные данные)

Изменение порядка и обработка данных с данными не представляет проблем. проблема в том, чтобы сделать копию данных

Мой вопрос: что я должен использовать для копирования данных?

Я пытался использовать memcpy(). g cc дает ошибку argument to ‘sizeof’ in ‘memcpy’ call is the same expression as the destination; did you mean to dereference it? - вероятно, из-за параметра const

1 Ответ

1 голос
/ 03 мая 2020

Если вы хотите создать копию input_data. Тогда, почему бы вам не создать локальную переменную, поместите в нее данные. Я не понимаю необходимость использования memcpy

Попробуйте это

struct  data *copy=malloc(sizeof(struct data));
*copy=*input_data;
 //your rearranging code here
 return copy;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...