[应用相关] 修改代码片段的一些问题

[复制链接]
814|0
 楼主| OKAKAKO 发表于 2024-8-31 16:52 | 显示全部楼层 |阅读模式

问:下面的代码段有错,你能指出来吗?

  1. #include<stdio.h>

  2. int main(void)
  3. {
  4.     char *ptr = "Linux";
  5.     *ptr = 'T';

  6.     printf("\n [%s] \n", ptr);

  7.     return 0;
  8. }


答:这是因为,通过 * ptr = ‘T’,会改变内存中代码段
(只读代码)“Linux”的第一个字母。这个操作是无效的,
因此会造成segment-fault或者崩溃。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

260

主题

2096

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部