首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串反序输出函数

2012-02-12 
字符串反序输出函数求助以下是代码,编译过程没有错误,但是一执行就出错,哪位大侠帮忙看下,不胜感谢。#inclu

字符串反序输出函数求助
以下是代码,编译过程没有错误,但是一执行就出错,哪位大侠帮忙看下,不胜感谢。
#include<stdio.h>
#include<string.h>

char *reverse(char *array)
{
char tmp;
int i;
int size = strlen(array);
for(i=0;i<(size/2);i++)
{
tmp = *(array+i);
*(array+i) = *(array+size-1-i);
*(array+size-1-i) = tmp;
}
*(array+size) = '\0';
printf("the reversed array is:%s\n",*array);
return(array);

}

int main()
{
char *p = "abcdefg";
char *q = reverse(p);
printf("the reversed array is:%s\n",*q);
return 0;
}

[解决办法]
"abcdefg"
这个是保存在不可修改的内存区。
所以,如果你修改这个区域就告诉你内存非法存取。
[解决办法]
楼主的p指向代码段(只读),所有对只读权限内存空间的修改都是非法的,虽说可以改变属性让其修改,但最好不要,编程语言这样设计有它的目的(保护数据)。

热点排行