C语言中用指针声明字符串在部分系统下运行有问题?C语言结构体里的泛型指针成员可以这样使用么

时间:2018-02-05 22:48:02   浏览:次   点击:次   作者:   来源:   立即下载

#includestdio.h

int main(void)

{

tchar *str = "Hello world";

tstr[⓪] = 'F';

tprintf("%sn

运行报错很正常,在windows下如果你用vc编译的话也会运行报错,因为这是已初始化的数据,被放在所谓的静态存储区,默认在PE文件的.rdata区段,这个区段是可读取不可写入的,写入肯定会非法访问。

可以根据@余天升 的方法将字符串放在栈里,但是如果你①定要这么做的话,那就在加上#pragma comment(linker, \"/section:.rdata,RW\")以通知链接器将.rdata区段的属性设置为可读取可写入就ok了。\", \"extras\": \"\", \"created_time\": ①③④③⑤⓪⑧⑥⑧⑨ · \"type\": \"answer

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息