한 포인터의 내용을 다른 포인터로 복사하는 데 문제가 있습니다. 나는 * a
에 의 내용을 복사 할 수 없습니다. * a
의 범프를 제거하면 s
의 마지막 문자 만 복사됩니다. 또한 문자열 라이브러리 함수 나 배열 표기법을 사용할 수 없습니다. 형식이 잘못되면 죄송합니다. 첫 번째 게시물입니다. 모든 도움을 미리 감사드립니다.C에서 다른 문자 포인터로 문자 포인터 복사 strcpy없이
char* copy(char *s)
{
char *a = (char *) malloc(sizeof(char)*length(s));
if (s == NULL)
{
printf("ERROR: OUT OF MEMORY\n");
return 0;
}
while(*s != '\0')
{
*a = *s;
s++;
a++;
}
*a = '\0';
return a;
}
캐스팅하지 마십시오 malloc의 반환 값, 그것 아무것도 추가하지 않습니다. 'char * a = malloc (sizeof (char) * length (s));'괜찮습니다. 또한 테스트는'if (a == NULL)'('s'가 아님)이어야합니다. – Tibrogargan
'길이'는 무엇입니까? –
@ M.M, 아마 그 자신의'strlen' 함수. – RoadRunner