Nie ma nieodłącznego powodu, dla którego jeden byłby lepszy w działaniu niż drugi. Różne kompilatory i ich wersje mogą się różnić, więc jeśli naprawdę zależy Ci na tym, profilujesz i porównujesz i używasz faktów jako podstawy do podjęcia decyzji.
Proste przypisanie jest bardziej czytelne.
Przypisanie jest nieco bardziej ryzykowne, aby uzyskać błąd, więc przypisujesz wskaźniki do struktur, a nie do wskazanych struktur. Jeśli się tego obawiacie, dopilnujecie, aby wasze testy jednostkowe obejmowały to. Nie dbałbym o to ryzyko. (Podobnie memcpy
jest ryzykowne, bo można dostać rozmiar struct złego.)
Uważaj tylko na przydzielanie pamięci wewnątrz struktury. Na przykład, jeśli masz strukturę zawierającą wskaźnik do łańcucha i alokujesz pamięć dla ciągu znaków. Ta pamięć nie zostanie skopiowana. wskaźnik do pamięci zostaje skopiowany, ale nie sama pamięć. Innymi słowy, ten typ zadania nie jest głęboką kopią. Nie jest też memem waniliowym dla tej materii. Może być mylące, kto jest właścicielem przydzielonej pamięci. – Pemdas
Myślę, że to pytanie jest bardziej odpowiednie dla Stackoverflow. – karlphillip
Myślę, że to pytanie zostało już dobrze odebrane tutaj: http://stackoverflow.com/q/4931123/176769 – karlphillip