免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: hjs6142
打印 上一主题 下一主题

请问sizeof 与strlen的区别? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-06-01 15:59 |只看该作者

请问sizeof 与strlen的区别?

因为你的程序完全错了,造成了溢出!
你在用memcpy的时候没有往s1里面拷,而是往&s1里面拷,怎么能对?全局变量不在栈里,所以幸免。

二者的区别很明显:
sizeof是一个算符,strlen是一个函数。
先别想那么多歪的邪的,建议马上重读谭浩强的《C语言》,把基础打牢再说。

论坛徽章:
0
12 [报告]
发表于 2003-06-01 16:01 |只看该作者

请问sizeof 与strlen的区别?

sizeof(&s1));  // 4 ???????
sizeof(指针)
那么结果只是4(指针长度,而不是指针)
sizeof(地址)才可以得出地址长度

论坛徽章:
0
13 [报告]
发表于 2003-06-01 16:16 |只看该作者

请问sizeof 与strlen的区别?

原帖由 "JohnBull" 发表:
因为你的程序完全错了,造成了溢出!
你在用memcpy的时候没有往s1里面拷,而是往&s1里面拷,怎么能对?全局变量不在栈里,所以幸免。

二者的区别很明显:
sizeof是一个算符,strlen是一个函数。
先别想那么多?.........
   

谢谢批评指导!
我再回去想想。

论坛徽章:
0
14 [报告]
发表于 2003-06-02 14:46 |只看该作者

请问sizeof 与strlen的区别?

晕啊。居然有人犯我犯过的错误啊!
JohnBull兄,能否告知联系方式。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
15 [报告]
发表于 2003-06-02 16:52 |只看该作者

请问sizeof 与strlen的区别?

sizeof是一个算符,strlen是一个函数。

这个描述说明了原因。

论坛徽章:
0
16 [报告]
发表于 2003-06-02 19:03 |只看该作者

请问sizeof 与strlen的区别?

前几天刚回。说参数不能用&,可是说他说memcpy和strlen中可以用char 型还可以用&搞得偶一头雾水

论坛徽章:
0
17 [报告]
发表于 2003-06-02 19:51 |只看该作者

请问sizeof 与strlen的区别?

看看函数定义就知道了
另外
a[1000]
a就已表示数组a的地址
不用&a形式

论坛徽章:
0
18 [报告]
发表于 2003-06-02 20:01 |只看该作者

请问sizeof 与strlen的区别?

是呀,偶一直这样的。也不知他用的是什么系统

论坛徽章:
0
19 [报告]
发表于 2003-06-02 21:59 |只看该作者

请问sizeof 与strlen的区别?

原帖由 "hb317"]是呀,偶一直这样的。也不知他用的是什么系统[/quote 发表:


[quote]原帖由 "无双"]a[1000 发表:

a就已表示数组a的地址
不用&a形式
  

我用的编译器下面两种情况:
char s1[4] = {1,2,3,4};
char s2[10];

memcpy(s2,s1,strlen(s1));与memcpy(&s2,&s1,strlen(&s1))
的结果都一样!我真的也一头雾水,也许它把&s1当成&s1[0]了,我是这么理解的。

论坛徽章:
0
20 [报告]
发表于 2003-06-03 12:29 |只看该作者

请问sizeof 与strlen的区别?

strlen(s1));??????
应该是sizeof吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP