Я пытаюсь сделать функцию, которая меняет порядок части строки. Я новичок в использовании указателей, и по какой-то причине я могу получить доступ к расположению символов моей строки, чтобы скопировать подстроку, но я не могу вернуть их в то же место...
Когда я пытаюсь скопировать перевернутую подстроку обратно в исходное место, я получаю
Программа получила сигнал SIGSEGV, ошибка сегментации. 0x00007ffff7b5dc66 в ?? () из /lib/x86_64-linux-gnu/libc.so.6
Любая помощь будет потрясающей!
Вот что у меня есть до сих пор:
void reverse(char* line, int start, int end){
char str[end-start];
memcpy ( str , line + start , end-start );
reverseSubString ( str );
memcpy ( line + start, str , end-start );
}
void reverseSubString(char* str){
int i, j, len;
char temp;
i=j=len=temp=0;
len=strlen(str);
for (i=0, j=len-1; i<=j; i++, j--)
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}