나는 프로그램을 찾기 위해 몇 시간 동안 내 프로그램을 찢어 놓았다. 나는 마침내 몇 줄의 코드로 제한했지만 아직도이 문제를 찾기 위해 여전히 어리 석다.포인터 함수가있는이 strcpy의 문제점은 무엇입니까?
모두 포인터를 사용하는 문자열 복사 기능입니다. 누군가 그것을 살펴볼 수 있습니까?
void stringCopy(char *sourcePtr, char *destPtr)
{
while(*sourcePtr!='\0')
{
*destPtr=*sourcePtr;
destPtr++;
sourcePtr++;
}
}
문자열의 한계를 벗어난 것처럼 내 문자열에 가비지 값을 주입하고 있습니다.
또한, 단지 20 모두가 하드 코드 선언 된 소스 및 목적지 어레이는 크기가 10 미만 길이의 문자열을 복사하기 위해 사용된다.
나는 strcpy를 사용할 것이다. 그러나 이것은 클래스에 대한 할당이며 허용되지 않는다.
편집 : 최종 null char을 대상에 입력하는 것을 잊어 버렸습니다! 모든 문제를 일으켜서 미안해, 얘들 아!
sourcePtr에 destPtr을 모두 저장할 공간이 충분합니까? – monoxygen
왜 strcpy를 사용하지 않는가? – monoxygen
가능하면 디버거를 사용하여 변수를 확인하십시오. – NeonGlow