当前位置: 技术问答>linux和unix
难道.rodata段可写不成?
来源: 互联网 发布时间:2015-11-18
本文导语: 以如下程序为例: #include main() { char rodata[] = "this is rodata."; printf("%sn", rodata); rodata[14] = '?'; printf("%sn", rodata); } 运行后输出: this is rodata. this is rodata? "this...
以如下程序为例:
#include
main()
{
char rodata[] = "this is rodata.";
printf("%sn", rodata);
rodata[14] = '?';
printf("%sn", rodata);
}
运行后输出:
this is rodata.
this is rodata?
"this is rodata."字符串位于.rodata段,按道理应该不能被写入啊!
哪位大侠帮忙解释一下.
#include
main()
{
char rodata[] = "this is rodata.";
printf("%sn", rodata);
rodata[14] = '?';
printf("%sn", rodata);
}
运行后输出:
this is rodata.
this is rodata?
"this is rodata."字符串位于.rodata段,按道理应该不能被写入啊!
哪位大侠帮忙解释一下.
|
呵呵,你可能理解错了,如果你声明成这样:
char *rodata="this is rodata.";
这才是在rodata段
你的那个依然是在栈空间中
char *rodata="this is rodata.";
这才是在rodata段
你的那个依然是在栈空间中
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。