본문 바로가기
[개발자 로드맵]/C

[C언어 코딩 도장 심사문제 답] 52.7_인적 정보 복제하기

by Ramrider 2022. 7. 8.
728x90
반응형

1. 답

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Person {
    char name[20];
    int age;
    char address[100];
};

int main()
{
    struct Person* p1 = malloc(sizeof(struct Person));
    struct Person p2;

    strcpy(p1->name, "고길동");
    p1->age = 40;
    strcpy(p1->address, "서울시 서초구 반포동");

    memcpy(&p2, p1, sizeof(struct Person));

    printf("이름: %s\n", p2.name);
    printf("나이: %d\n", p2.age);
    printf("주소: %s\n", p2.address);

    free(p1);

    return 0;

}

2. 결과

실행 결과

3. 정리

p2는 포인터 변수가 아니므로 &p2로 넣어줍니다. p1은 포인터 변수이므로 &주소 참조 연산자는 필요없이 넣어줍니다. size는 Person의 사이즈만큼으로 할당해서 memcpy함수를 이용해 정보를 복사해줍니다.

4. 비고

 

코딩 도장: 사이트에 로그인

사이트의 강좌를 수강하고 학습 효과를 최대한 높이려면 회원 가입이 필요합니다. '회원 가입' 버튼을 클릭한 후 가입 정보를 입력합니다.입력한 이메일 주소로 확인 메일이 즉시 전송됩니다.이

dojang.io

 

728x90
반응형

댓글