2013-11-04 2 views
0

문자열을 char * 포인터에 삽입하려고하지만 명확하게 작동하지 않습니다.문자열을 char 포인터 변수에 저장하십시오.

나는 malloc이나 다른 것을 사용해야 할 수도 있다고 읽었습니까? 그러나 다른 사이트는이를 명확하게 공유하지 않습니다.

char* token[1000]; 
gets(token); 
printf("%s\n",*token); 

감사

UPDATE :

가 지금은 표시된 매개 변수를 함수에 (문자열을 가리키는) 포인터를 삽입해야합니다. 예상의

int function(char *token[]); 

char token[1000]; 
gets(token); 
char*text=token; 
printf("%s\n",text); 

function(text); 

오류 '숯불 **'하지만 인수가

답변

5

귀하의 변수 선언이 잘못 '의 char *'유형, 당신은 1000 문자 포인터가 아닌 1000 개 문자의 배열을 선언했다. *을 제거하십시오.

gets()을 절대 사용하지 말고 항상 안전하므로 fgets()을 사용해야합니다. 사용자가 gets()으로 1000 자 이상을 입력 할 수 없으므로 버퍼 오버플로가 발생합니다.

+0

그런데'* token'이 더 이상 문자열이 아니므로, 당신은 또한 printf 행에서'*'를 제거해야합니다. – dhein

+0

고정 ............ – Newbie

+0

업데이트를 참조하십시오. – Newbie

관련 문제