strcpy()함수가 destination인자로 포인터를 받아오면 안되는 것같은데 맞나요????

qoqkwl6593의 이미지

#include <stdio.h>
#include <string.h>
 
int main ()
{
  char str1[]="Sample string";
  char str2[40];
  char* str3; //!!!!!!!!!!!!!!!!!
  strcpy (str2,str1);
  strcpy (str3,"copy successful");
  printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
  return 0;
}

str3을 구지 포인터를 받아서 실험해 보았습니다....
char * strcpy ( char * destination, const char * source );
분명히 str3 = "copy successful" 이 문법과 동일할 것이라 생각 했던 제생각 이 깨지는 군요

HDNua의 이미지

1. strcpy의 목적지는 메모리가 할당되어있어야 한다는 조건이 붙습니다.
C를 배우고 계신 것 같은데 어느 정도로 C를 배우셨는지 모르겠어서 일단 링크만 붙일게요.
http://mndd.tistory.com/80

후에 포인터와 메모리, 동적 할당에 관한 내용을 배우시면 이해할 수 있을 겁니다.

2. 구지->굳이

저는 이렇게 생각했습니다.

qoqkwl6593의 이미지

감사합니다. ㅎㅎ