免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11284 | 回复: 10
打印 上一主题 下一主题

如何修改宏定义的值? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-21 13:53 |只看该作者 |倒序浏览
# include <stdio.h>
# include <stdlib.h>
# include <string.h>

# define    TEST_FOR_BUFFER     "lala"

int main(int  argc,char **argv)
{
   char    *p ;

   p = TEST_FOR_BUFFER ;
   strcpy(p,"111") ;
   printf("!!!![%ld][%s][%ld][%s][%d][%d]!!!!\n",p,p,TEST_FOR_BUFFER,TEST_FOR_BUFFER,strlen(p),strlen(TEST_FOR_BUFFER)) ;

   return 0 ;
}
结果是:!!!![4563404420][111][4563404428][lala][3][4]!!!!

不太明白啊,p的地址怎么和TEST_FOR_BUFFER的地址不一样啊?

论坛徽章:
0
2 [报告]
发表于 2007-11-21 13:58 |只看该作者
还有p的地址是从哪里得到的????

论坛徽章:
0
3 [报告]
发表于 2007-11-21 14:04 |只看该作者
你是什么编译器? 居然没有段错误.

论坛徽章:
0
4 [报告]
发表于 2007-11-21 14:08 |只看该作者
IBM XL C compiler
为什么没有报错,我也不清楚,得到这个结果很意外!

论坛徽章:
0
5 [报告]
发表于 2007-11-21 14:19 |只看该作者
你想得到什么样的结果?

论坛徽章:
0
6 [报告]
发表于 2007-11-21 14:25 |只看该作者
我是想通过p修改TEST_FOR_BUFFER的值,
但是p指向的地址不是TEST_FOR_BUFFER
所以我也不知道应该得到什么结果!

论坛徽章:
0
7 [报告]
发表于 2007-11-21 14:30 |只看该作者

回复 #6 zzw3206 的帖子

那个是只读数据,一般是不能够修改的.
andytodd 该用户已被删除
8 [报告]
发表于 2007-11-21 14:30 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2007-11-21 14:35 |只看该作者
知道了,不好意思,基本语法没有弄清楚!
谢谢各位了!

论坛徽章:
0
10 [报告]
发表于 2007-11-21 14:39 |只看该作者
我执行到strcpy 就segmentation fault 了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP