주어진 길이와 시작 인덱스로 주어진 배열을 chars 배열로 하위 문자열로 변환하기 위해 자체 함수를 작성하려고합니다.어설 션 오류가 발생했습니다. 하위 문자열을 만들 때 오류가 발생했습니다.
코드를 실행할 때 "디버그 어설 션 실패" 오류가 발생합니다. "tcscpy_s.inl"의 프로그램도 실패한 (표현 : L은 "버퍼가 너무 작습니다"& & 0)
이 내 코드입니다 :
char* String_Substring(char* OriginalString, int StartIndex, int Length)
{
// Allocate space for the new string by it's given length.
char* StrToRet = (char*)malloc((Length + 1) * sizeof(char));
// Move to the start position of the sub - string.
OriginalString += StartIndex;
// Copy the requested sub - string to 'StrToRet'
strcpy_s(StrToRet, Length, OriginalString);
return StrToRet;
}
가 어떻게이 문제를 해결할 수 있습니까?
이 코드 세그먼트에서 버그가 발생했는지 확인하십시오. 실제로 메모리가 할당되었는지 확인 했습니까? – abiessu
아마도 관련이 없지만 기술적으로 malloc은'(Length + 1) * sizeof (char)'이어야합니다. –
@chuex 네 말이 맞아. 내가 바꿨어. – Aviv