Ash*_*eyT 0 c segmentation-fault
代码是不言自明的,但它给我分段错误,为什么?:\
#include <stdio.h>
int main(void)
{
char *c = "Hella";
*(c+4) = 'o';
printf("%s\n",c);
}
Run Code Online (Sandbox Code Playgroud)
怎么避免呢?
不要修改字符串文字!
char *c = "Hella";
Run Code Online (Sandbox Code Playgroud)
声明一个指向c存储在实现定义的只读内存中的字符串文字"Hella" 的指针.
您不能修改此文字.尝试这样做会导致未定义的行为.
您很幸运,您的程序崩溃,未定义的行为并不总是导致崩溃,但可能导致您的程序以任何可能的方式表现奇怪.
你需要的是一个数组:
char c[] = "Hella";
Run Code Online (Sandbox Code Playgroud)
好读:
char a [] =?string有什么区别?和char*p =?string?;?
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |