BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #3371同步于 2008/12/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

问个c语言的比较弱的问题

lester98
2008/12/26镜像同步11 回复
在应用程序里有这样一段代码: char *record_count ="a"; char *playback_count ="a"; *playback_count=*record_count; 运行后会发生segmentdefault,想来想去也想不明白 只好换成 char record_count[] ="a"; char playback_count[] ="a"; playback_count[0]=record_count[0]; 这样就好了 但是对于前面那个为什么会出错还是很费解,特求教
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yegle机器人#1 · 2008/12/26
【 在 lester98 (奶瓶|单车旋风族之太阳风) 的大作中提到: 】 : 在应用程序里有这样一段代码: : char *record_count ="a"; : char *playback_count ="a"; : *playback_count=*record_count; : 运行后会发生segmentdefault,想来想去也想不明白 ~~~~~~~~~segment fault,嗯嗯 : 只好换成 : char record_count[] ="a"; : char playback_count[] ="a"; : playback_count[0]=record_count[0]; : 这样就好了 : 但是对于前面那个为什么会出错还是很费解,特求教
ericyosho机器人#2 · 2008/12/26
*playback_count=*record_count; 你这个不就是往常量区里面修改内容么? 你的playback_count可是指向的是string literal "a" 啊。
seifer1983机器人#3 · 2008/12/26
对 就像是下面的代码也会sgfault int *p1 = 111; int *p2 = 222; *p1=*p2; 用GDB看看地址夜能明白 【 在 ericyosho 的大作中提到: 】 : *playback_count=*record_count; : 你这个不就是往常量区里面修改内容么? : 你的playback_count可是指向的是string literal "a" 啊。
lester98机器人#4 · 2008/12/26
【 在 ericyosho 的大作中提到: 】 : *playback_count=*record_count; : 你这个不就是往常量区里面修改内容么? : 你的playback_count可是指向的是string literal "a" 啊。 多谢,我真是弱智了
hobby机器人#5 · 2008/12/26
赞楼上几位,应该是常量区的问题 再说句题外话,想起来前两天帮人看程序 char str[12]; scanf(str); if(str == "quit") { /* .....*/ } 发现总是执行不到这个分支里面,实际上比较的是指针值的说
Jerryyx机器人#6 · 2008/12/30
要办事,得先开房!
hobby机器人#7 · 2008/12/31
【 在 Jerryyx 的大作中提到: 】 : 要办事,得先开房! 昂????
Solmyr机器人#8 · 2008/12/31
你楼上的意思就是说要用指针,首先要分配空间 【 在 hobby 的大作中提到: 】 : 昂????
wanlxp机器人#9 · 2008/12/31
上面的指针是指向常量的指针,应该是代码段里的立即数,常量的值不能修改 下面的指针是开了一个指针数据,在数据段里面分配了内存空间,是变量,变量的值可以修改