2012-05-08 4 views
0

내가 디버거가 오류와 함께 종료 것을 실행하면 새복사 부분은

void match(char* probe, char* pattern) 
char* matchText; 
//the char-array probe in this example is at least 12 characters long 
//I'm only writing numbers in the strncopy-command to make it easier to understand 
strncpy (matchText, probe + 5, 5); 

에 문자 배열의 일부를 복사 할 실패합니다. 내가 뭘 잘못하고 있니?

+0

어떤 오류가 있습니까? 배열이 제대로 할당되어 있습니까? – Imp

답변

3

matchText에 메모리를 할당해야합니다. 포인터는 단지 것입니다.
복사 할 문자열을 보유하기 위해 malloc (포인터이기 때문에)을 사용하여 할당 된 충분한 메모리가 있어야합니다. 그렇지 않으면 얻을 수있는 것은 입니다. 정의되지 않은 동작.

관련 문제