Я пытаюсь написать свою собственную функцию, чтобы подстроить заданный указатель на массив символов, заданную длину и начальный индекс.Утверждение Ошибка при попытке создать подстроку
Когда я выполняю код, я получаю сообщение об ошибке «Ошибка отладки». Программа failes в "tcscpy_s.inl" (Expression: 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