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星
- 暂无评论信息
