Я получаю сообщение об ошибке при попытке запустить следующую функцию:Плохие разрешения для отображенной области
char* reverseInPlace(char* src)
{
//no need to alloc or free memory
int i=0;
int size=mystrlen(src);
for(i=0;i<size;i++)
{
int j=size-i-1;
if(i<j)
{
char temp;
printf("Interchange start %d:%c with %d:%c",i,src[i],j,src[j]);
temp=src[i];
src[i]=src[j];//error occurs here
src[j]=temp;
printf("Interchange complete %d:%c and %d:%c",i,src[i],j,src[j]);
}
}
return src;
}
я называю этот код так:
char* rev2=reverseInPlace("BeforeSunrise");
printf("The reversed string is %s\n",rev2);
ошибка выглядит следующим образом:
Interchange start 0:B with 12:e
Process terminating with default action of signal 11 (SIGSEGV)
Bad permissions for mapped region at address 0x401165
Зачем возникает эта ошибка?
строковых литералов, он же строковые константы, называются «константой» по причине. Обратите внимание при чтении книг/учебников. –
Кстати, этот вопрос ^^ является первым хитом Google. ** Буквально первый. ** Не ленитесь. –