2013-10-14 4 views
2

Если я вызываю функцию в C и передаю в struct (а не указателями или ссылками для этих читателей C++), она копирует объект. Если я передаю структуру с массивом в ней, она копирует массив (как заявил профессор в классе). Но что произойдет, если я передам структуру, содержащую обратную ссылку на объект. Как он копирует всю структуру?C Непосредственно/Явные параметры прохождения

ответ

4

Он копирует структуру, а указатель внутри скопированной структуры содержит адрес исходного объекта.

+0

Не могли бы вы рассказать об этом? – bluejamesbond

+0

Не знаете, как лучше всего расширить. Если исходная структура содержит указатель (в C нет «ссылок»), указатель в копии структуры будет иметь то же значение, что и оригинал. Если исходный указатель имел действительный адрес, копия будет иметь тот же адрес. Если исходный указатель был неинициализирован, копия будет иметь такое же неинициализированное значение. –

2

Единственный способ вернуться к тому же struct - это добавить указатель на struct, который указывает на то, Этот указатель копируется так же, как и остальная часть struct.

Смежные вопросы