查看单个帖子
旧 2009-03-22, 10:56 PM   #5
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 回复: 【转帖】bug分析

sizeof求长度的错误用法。
在路上<isabc@qq.com> 15:57:02
CString strMsg = "ok1ok2ok3ok4";
char* Buffer = strMsg.GetBuffer(strMsg.GetLength());
int n = sizeof(Buffer);
在路上<isabc@qq.com> 15:57:31
n怎么等于4
寻路者(158989725) 15:57:51
int n = sizeof(Buffer);
在路上<isabc@qq.com> 15:57:55
可以这样求吗?
寻路者(158989725) 15:58:13
Buffer是个指针.在32位机器上就是4个字节
Pinck(258360502) 15:58:17
指针.
在路上<isabc@qq.com> 15:58:14
这样啊!

Pinck(258360502) 15:58:25
用strlen
在路上<isabc@qq.com> 15:58:16
谢谢
沧海一粟(17023666) 16:01:49
就是这样的
在路上<isabc@qq.com> 16:03:37
如果是数组就可以对吧
在路上<isabc@qq.com> 16:03:54
char buffer[1024] = {"ok1ok2ok3ok4"};
在路上<isabc@qq.com> 16:04:06
sizeof(buffer)
在路上<isabc@qq.com> 16:04:15
这样可以得到实际长度吧
Pinck(258360502) 16:04:49
不能.
Pinck(258360502) 16:04:59
长度为1024
在路上<isabc@qq.com> 16:05:05
这样啊!!
沧海一粟(17023666) 16:06:23
如果这样就行
sizeof和strlen有区别
如果这样可以的
char buffer[]={"ok1ok2ok3ok4"};
sizeof(buffer);
沧海一粟(17023666) 16:07:00
在网上有好帖子讲这个很详细的。
可以搜索看下

先把错误过程贴出来。有时间再分析下!
__________________
借用达朗贝尔的名言:前进吧,你会得到信心!
[url="http://www.dimcax.com"]几何尺寸与公差标准[/url]
huangyhg离线中   回复时引用此帖