13-3-��.���� ��������ü���� ������ �����ϴٴ� ���� ���������� ������ ���ȴٴ� ����̴�. ���� �����δ� ���Կ� ���� ����ġ ���� ������ ���ϴ� ��쵵 �ִ�. ����ü ��� �߿� �����Ͱ� �ְ� �� �����Ͱ� ����ü �ܺ��� �� ����Ű�� �ִٰų� �Ǵ� ����� ������� �ܺ��� � ����� �����ϰ� �ִٸ� �ܼ��� ���縸 �ؼ��� �纻�� ���� �� ����. ���� ��� ����ü ��� �߿� ������ ���� ������ �ϴ� ID�� �ִٸ� �� ��쵵 ������ �ȴ�. � ������ �ִ��� ������ ����� ���� ����ü�� ���� ������ ����. #include <Turboc.h> struct tag_Friend { char *pName; int Age; double Height; }; void main() { tag_Friend Albert={NULL,80,165.0}; tag_Friend Kim; Albert.pName=(char *)malloc(32); strcpy(Albert.pName,"�˹�Ʈ ���ν�Ÿ��"); Kim=Albert; printf("�̸�=%s, ����=%d, Ű=%.1f\n",Kim.pName,Kim.Age,Kim.Height); strcpy(Albert.pName,"������ ��ư"); printf("�̸�=%s, ����=%d, Ű=%.1f\n",Kim.pName,Kim.Age,Kim.Height); free(Albert.pName); free(Kim.pName); } tag_Friend ����ü�� ������ ������ ��� pName�� ���ԵǾ� �ִµ� �����ʹ� ���� �迭�� ���� ���� ���� ���ڿ��� �ٷ� �� �ִ� ������ �ִ� �ݸ� ������ �����ϱ� ���� ���� �Ҵ��� �ؾ� �ϴ� ���ŷο��� �ִ�. main���� Albert��� �̸����� ����ü ������ �����ϰ� pName�� 32�� ���̸� �Ҵ��� �� �� �� �̸��� ������ �־���. �̶� Albert�� �� ������ ����� ������ ����. �̸� ���ڿ��� ����ü�� ���ԵǾ� ������ ������ �������� �Ҵ�� ���� ������ ����� ������ �����Ƿ� �� ������ ������ �̸� ���ڿ��� ���� �� �ִ�. ��·�� Albert ����ü�κ��� ���ν�Ÿ�ο� ���� ��� ������ �аų� �� �� �ִ� ���̴�. �� ���¿��� Kim�̶�� ���� Ÿ���� ����ü�� Albert�� �����ߴµ� �̷��� �Ǹ� Kim�� Albert�� ��� ����� �״�� ���Թ����� �Ȱ��� ������ ������ �ȴ�. ���� ���Ŀ� Kim�� ����� ����� ���� ���� �Ȱ��� ������ ��µȴٴ� ���� Ȯ���� �� �ִ�. ���� ����� ���Ե� �� ������ �� ���θ� �鿩�� ���� ������ �Ҿ��� ���¶�� ���� �� �� �ִµ� �� ����ü ������ pName ������ �Ȱ��� ���� ����Ű�� �ִ� ���̴�. ���� �����ڷ� ���������Ƿ� ���������� �״�� ���ԵǾ���. �����ϴ� �������� �� ������ �Ȱ��� ������ ������� ������ ���� �Ҵ�� �� �����ϰ� �ֱ� ������ �������� ������ ���� ������ ���� ������ �ִ�. �� ���� �� ��Ȳ�� ������ ����. �켱 �� ���� �� ������ pName�� �ٲٸ� ������ ��� ������ �´ٴ� ���� ������. Kim�� Albert�� �纻���� �����Ǿ��µ� Albert�� pName�� �����ϸ� Kim�� �̸��� ���� ����� ���ۿ� ������ �ݴ��� ��쵵 ����������. ���Կ� ���� �� ������ �Ͻ������� ���� ���°� �DZ�� ������ ���� �������� ���谡 �Ǿ����Ƿ� ������ �纻�̶� �� �� ����. ������ ���� i�� ���� j=i�� �����Ͽ� �纻 j�� ������ٸ� j�� ��� �Ǵ��� i�� ������ ���� ���ƾ� �Ѵ�. �� �ٸ� �������� �� ������ �ı��� �� �� �������� ������ ������ �ִٴ� ���̴�. Albert�� �ڽ��� ��� pName�� �������� �Ҵ�Ǿ����Ƿ� �ı��DZ� ���� �� �� �����Ϸ��� �� ���̴�. �̷��� �Ǹ� Kim�� pName�� ���� �����Ǿ� ���� Kim�� ������ �Ҿ� ������ �ǰ� ���� Kim�� pName�� ������ ���� �̹� ������ �� �������� �����ϰ� �ǹǷ� �̻� ������ �ϰ� �ȴ�. ��ó�� ���� �����ڷ� �ܼ� �����Ͽ� ����ü�� �纻�� ����� ���� ���� ����(Shallow Copy)��� �Ѵ�. ����ü�� ������� ������ �Ǽ� ������ �ܼ� Ÿ�Ը� ���� ���� ���� ���縸���ε� ������ �纻�� ���� �� ������ �����Ͱ� ���ԵǾ� ���� ���� ���Կ� ���� �Ȱ��� ������ ����Ű�� �������� �ִ�. �����Ϳ� ���ؼ��� ������ �� �Ҵ��� �� ������ �����ؾ� �� ������ ������ �������� ������ �ȴ�. �̷� ������ ������ ����� ���ؼ��� ������ �ٷ� �������� �ʰ� �ʿ��� ���̸�ŭ ���� �Ҵ��� �� ������ ���븸 ���ϴ� ���縦 ���� ����(Deep Copy)��� �Ѵ�. ������ ����Ӹ� �ƴ϶� ����� ����Ű�� ���� ��������� ���� �����ϴ� �� �� ������ ���� ����̴�. �� �������� Albert�� ���� �����Ͽ� �纻�� �ۼ��Ϸ��� ���� �� ���� �����ؾ� �Ѵ�. Kim=Albert; Kim.pName=(char *)malloc(strlen(Albert.pName)+1); strcpy(Kim.pName,Albert.pName); printf("�̸�=%s, ����=%d, Ű=%.1f\n",Kim.pName,Kim.Age,Kim.Height); �ϴ� ��� ����� �����ϵ� ������ ����� ���ؼ��� ������ ���̸�ŭ ������ �� �Ҵ��ϰ� ������ ���븸 �����ߴ�. �̷��� �Ǹ� �� ������ ������ ������ �� �����Ƿ� ���Ӽ��� ������� ������ ������ �����ص� �ݴ����� ���� ������ ���� �ʴ´�. ���� �� ������ ���������� �� �����ص� �ƹ��� ������ ����. �����Ͱ� ���Ե� ����ü�� �ٷ� ���� ������ ���ǰ� �ʿ��ϴ�. Ư�� C++���� ��ü���� ������ �� �̷� ������ ���� ��Ÿ����. |