fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. char* ReadUserName(void)
  5. {
  6. char* name = (char*)malloc(sizeof(char) * 30); //문자형 동적메모리 할당
  7. gets(name); //포인터가 가리키는 문자형 메모리공간에 문자열 입력받음
  8.  
  9. return name; //포인터가 가리키는 메모리공간에 담긴 문자열값 반환
  10. }
  11.  
  12. int main(void)
  13. {
  14. char* name1;
  15. char* name2;
  16.  
  17. name1 = ReadUserName(); //유저 이름 불러오는 함수를 참조
  18. printf("name1: %s\n", name1); //포인터 name1이 가리키는 함수의 반환값(문자열) 출력
  19.  
  20. name2 = ReadUserName(); //유저 이름 불러오는 함수를 참조
  21. printf("name2: %s\n", name2); //포인터 name2이 가리키는 함수의 반환값(문자열) 출력
  22.  
  23.  
  24. printf("Again name1: %p\n", name1); //다시 name1 출력
  25. printf("Again name2: %p\n", name2); //다시 name2 출력
  26.  
  27. free(name1);
  28. free(name2);
  29. printf("Again name1: %p\n", name1); //다시 name1 출력
  30. printf("Again name2: %p\n", name2); //다시 name2 출력
  31.  
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0s 5284KB
stdin
lim
kim
stdout
name1: lim
name2: kim
Again name1: 0x55830ee14260
Again name2: 0x55830ee162b0
Again name1: 0x55830ee14260
Again name2: 0x55830ee162b0