请看如下代码:
- #include<stdio.h>
- int main(void) {
- char *ptr = "Linux";
-
- *ptr = 'Windows';
-
- printf("\n [%s] \n", ptr);
-
- return 0;
- }
复制代码 这做法会引发什么结果,你想过吗。。。。
让我来告诉你吧:
通过*ptr = ‘Windows’,会改变内存中代码段(只读代码)“Linux”的第一个字母。
这个操作是无效的,因此会造成seg-fault或者崩溃。
奔溃。。。多惨啊
莫名的奔溃很多童鞋第一时间想的就是自己的编辑器出问题了。。。
一直重启编辑器,然并卵。。。
一直网上查找编辑器奔溃的问题,然并卵。。。
所以啊,如果以后你编写代码的时候出现如下图片,那么你不用着急。
肯定是代码中有修改代码片段部分了,只要修正就没问题了。
|
|