c - c中的字符串函数

标签 c string

<分区>

Possible Duplicate:
Why do I get a segmentation fault when writing to a string?

我正在编写一个简单的字符串函数。问题是:我声明了一个字符指针,然后一旦我尝试更新特定字符,程序就会崩溃。

查了一些以前写的字符串处理,发现都是修改特定的字符。但是当我尝试运行它们时,我遇到了同样的问题。

示例:

   stringprocess()
{
 char *s;
 s=" I am c programmer";
 s=" but, ..... um";

 *s='x'; //program crashes here...

 *p="abc";
 *s=*p; // this also cause crashing
........
}  

为什么会这样?

最佳答案

s=" but, ..... um";

s 指向一个字符串文字。尝试修改字符串文字会调用未定义的行为。通常,字符串文字存储在只读内存中,然后崩溃是这种尝试的直接后果。

如果您想修改内容,您应该使用 char s[100](仅作为示例)或 malloced 指针。

关于c - c中的字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13387332/

相关文章:

c - sip 解析和库?

c - 从串行端口 Linux C 读取 NULL 字符

c++ - 使用对 char 数组的隐式转换或编写显式转换方法是否明智?

java - 使用一个正则表达式将整个文本拆分为单词

c - fwprintf 将回车符放在换行符之前

c - 我必须释放 read_triplet 中的 doublet 吗?我该怎么做?

c - 填充 int 变量中的字节

c# - 从字符串中删除最后一个正斜杠和尾随字符的简写方法

java - Ascii 转 整数

Java,如何将字符串转换为数组