读书人

memset.解决方案

发布时间: 2012-05-05 17:21:10 作者: rapoo

memset...
今天看见一个帖子写memset的,里面有点东西不是太懂,问问大家~~

C/C++ code
int main(){    char *s="This is a test!!";    memset(s,'G',6);//提示内存访问冲突,改成char s[50]="This is a test!!";通过    printf("%s",s);    return 0;}


为什么改了之后就没问题了?最开始s做为常量了???

[解决办法]
s不是常量,s指向的字符串是常量。
[解决办法]
对于这个问题,微软的编译器将s指定的那块内存标记为const,不允许进行改写。
改为char s[50]="This is a test!!",这就定义了一个非const的字符数组,随便你怎么修改。
[解决办法]
探讨

引用:

s不是常量,s指向的字符串是常量。

指针定义,会把字符串当做常量放入程序存储空间??

读书人网 >C语言

热点推荐