A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请看如下代码:
  1. #include<stdio.h>
  2. int main(void) {
  3.         char *ptr = "Linux";
  4.        
  5.         *ptr = 'Windows';
  6.        
  7.         printf("\n [%s] \n", ptr);
  8.        
  9.         return 0;
  10. }
复制代码
这做法会引发什么结果,你想过吗。。。。

让我来告诉你吧:
通过*ptr = ‘Windows’,会改变内存中代码段(只读代码)“Linux”的第一个字母。
这个操作是无效的,因此会造成seg-fault或者崩溃。

奔溃。。。多惨啊
莫名的奔溃很多童鞋第一时间想的就是自己的编辑器出问题了。。。
一直重启编辑器,然并卵。。。
一直网上查找编辑器奔溃的问题,然并卵。。。
所以啊,如果以后你编写代码的时候出现如下图片,那么你不用着急。
肯定是代码中有修改代码片段部分了,只要修正就没问题了。



bk.png (10.42 KB, 下载次数: 4)

bk.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马