小编use*_*477的帖子

C :为什么只有一些文字字符串会导致我的程序崩溃?

我尝试了以下程序:

#include <stdio.h>

char s1[] = "Global String";
char *s2 = "Another Global String";

main()
{
    char s3[] = "Local String" ;
    char *s4 = "Another Local String" ;

    strcpy( s1, "New str" );
    strcpy( s2, "New str" ); // causes seg fault
    strcpy( s3, "New str" );
    strcpy( s4, "New str" ); // causes seg fault
}
Run Code Online (Sandbox Code Playgroud)

s2s4导致分段错误,大概是因为它们存储在只读数据段中。怎么会在文字字符串的指向s1s3不崩溃?这是在 Ubuntu 上。

奇怪的是,s1, s2,s3s4都可以修改,并且在 cygwin 上使用 gcc …

c string

0
推荐指数
1
解决办法
241
查看次数

标签 统计

c ×1

string ×1