2012-03-16 5 views
0

좋아요, 구조체 구조체 구조체가 있습니다. 어쨌든 모든 다른 데이터 계열을 할당하지 않고도 모든 데이터가 포함 된 전체 구조체를 새로운 구조체로 복사 할 수 있습니까? 구조체?C에 할당 된 구조체 복사

답변

3

예, 단지 지정 :

MyStruct a; 
MyStruct b; 

... 

a = b; 

이것은 수행하는 얕은 사본; 구조체 중 하나에 포인터가 있으면 포인터가 복사되고 포인터는 복사되지 않습니다. 딥 복사본이 필요하면 자신의 루틴을 작성해야합니다.

+0

+1. 그러나 환경에 따라 간단한 할당으로는 충분하지 않을 수도 있습니다. 어떤 컴파일러는'memcpy'를 문자 적으로 호출하기 때문에, 심볼이 환경에 정의되어 있지 않거나 이상한 의미를 지니고 있다면 문제가 생길 수 있습니다. –

+0

@CarlNorum : 위의 내용이 잘 정의 된 C89를 사용하면 매우 귀찮을 것입니다. –

+0

사실 매우 귀찮습니다. 그러나 불행히도 현실입니다. –

관련 문제