黑马程序员技术交流社区

标题: C语言修改代码片段(或者只读代码) [打印本页]

作者: socl_ycl    时间: 2015-9-16 14:26
标题: C语言修改代码片段(或者只读代码)
请看如下代码:
  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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2