g*********e 发帖数: 14401 | 1 为什么
int main(){
char *t="good";
*t='a';
}
这里第二句会有seg fault?
redhat 下g++编的 |
p*i 发帖数: 411 | 2 "good" is string constant.
【在 g*********e 的大作中提到】 : 为什么 : int main(){ : char *t="good"; : *t='a'; : } : 这里第二句会有seg fault? : redhat 下g++编的
|
g*********e 发帖数: 14401 | 3
why it's a constant?
【在 p*i 的大作中提到】 : "good" is string constant.
|
p*i 发帖数: 411 | 4 Compare the following two statements and try to understand their difference:
char t[100] = "good"; // *t = 'a'; works in this case
char *t = "good";
【在 g*********e 的大作中提到】 : : why it's a constant?
|
c****p 发帖数: 6474 | 5 "good"会被放到只读数据区,
第二句尝试修改只读数据,造成段错。
【在 g*********e 的大作中提到】 : 为什么 : int main(){ : char *t="good"; : *t='a'; : } : 这里第二句会有seg fault? : redhat 下g++编的
|
i**********e 发帖数: 1145 | |
g*********e 发帖数: 14401 | 7
i see. 原来initialized data还分读写。
【在 i**********e 的大作中提到】 : Read Data Segment: : http://en.wikipedia.org/wiki/Data_segment
|