Как создать копию массива значений и массива указателей без std?

#c #struct #copy #copy-constructor

Вопрос:

Я не могу понять, как сделать копию этой структуры:

 struct Node { private:  int *keys_;  int min_degree_;  Node **children_;  int count_;  bool is_leaf_;  ...  

Ну, я понимаю примерно половину из этого:

 Node(Node const amp;node) {  min_degree_ = node.min_degree_;  is_leaf_ = node.is_leaf_;  count_ = node.count_;  ... }  

И как сделать копию массива значений(int *keys_) и массива указателей(Node **children_) без std, не ясно. Исходный объект должен быть удален, чтобы ссылки можно было скопировать, хотя я не уверен.

Комментарии:

1. Сама структура не содержит данных массивов, на которые указывают *keys_, *children_. Поэтому, если вы копируете эту структуру, вы просто копируете эти указатели (адреса массивов). В случае, если вы хотите скопировать данные, на которые указывают *key_ и *children_, вы должны знать длину массива, скопировать их куда-нибудь в память, получить адреса памяти и установить новые адреса в *key_, *children_ в новой структуре. Рекомендуется провести исследование указателей, прежде чем работать с ними, иначе вы испытали бы такую же сильную боль, как и я 😀

2. «без зппп не понятно» . Сделайте это с помощью std 🙂 Если вы не можете использовать std, создайте свою собственную упрощенную версию необходимых вам компонентов std.

3. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.