typedef struct unit_class_struct {
char *name;
char *last_name;
} person;
int setName(person *array) {
array[0].name = strdup("Bob");
array[1].name = strdup("Dick");
return 1;
}
int setLastName(person *array) {
array->last_name = strdup("Sanchez");
array++;
array->last_name = strdup("Clark");
return 1;
}
int main()
{
person array[10];
person *pointer;
pointer = array;
setName(pointer);
setLastName(pointer);
printf("First name is %s %s\n", array[0].name, array[0].last_name);
printf("Second name is %s %s\n", array[1].name, array[1].last_name);
while(1) {}
return 0;
}
이것은 구조로 놀아 보았던 몇 가지 예제 코드입니다. setName에서 이름을 설정하는 방법과 setLastName에서 설정 한 방식에 유의하십시오.구조체를 참조로 전달하고 조작하기
두 가지 모두 작동하지만 두 가지 방법의 차이점은 무엇인지 궁금합니다.
다른 방법보다 나은 점은 무엇입니까?
이 예제에서는 strdup이 필요합니까? 그렇지 않다면 array.name을 문자열 리터럴이 아닌 임의의 크기의 변수로 설정해야 할 필요가 있습니까?