游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5559|回复: 12

一个编程难题,求高手指教!

[复制链接]

54

主题

2917

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2004-5-31 07:14:00 | 显示全部楼层 |阅读模式
size_t GetSize(int *buf)
{
//return:我想编一个获取buf大小的函数,这里的代码该怎么写?
}

void main()
{
int *buf1=new int[100];
int   buf2[50];

size_t s1=GetSize(buf1)
size_t s2=GetSize(buf2)
}

[em24] [em23] [em24] [em23] [em24]

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2004-5-31 08:59:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

为什么不直接用sizeof()呢

0

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2004-5-31 09:00:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

你开玩笑?这想法不太实际,你按字节检查吧,windows分配的没有初始化的内存空间都被填成了0xcc,要是int类型,你也可以按整型检查,那就是0xcccccccc。但是这样检查存在越界可能。分配内存的大小应该是你做的事情,编程者本人应该清楚大小,本不应该还需要程序自己检查的。

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2004-5-31 10:48:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

size_t GetSize(vector<int>*buf)
{
//return:我想编一个获取buf大小的函数,这里的代码该怎么写?
return *buf::size();
}

void main()
{
vector<int> *buf1=new int[100];
vector<int>   buf2[50];

size_t s1=GetSize(buf1)
size_t s2=GetSize(buf2)
}


大致上可以这样做。如有错误自己修改。本人概不负责。

54

主题

2917

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
 楼主| 发表于 2004-6-2 07:50:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

为这种小事就大肆使用模板函数,好象有点奢侈吧、、、。

18

主题

135

帖子

143

积分

注册会员

Rank: 2

积分
143
发表于 2004-6-2 11:07:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

学习

82

主题

331

帖子

340

积分

中级会员

Rank: 3Rank: 3

积分
340
QQ
发表于 2004-6-2 21:02:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

这种问题我以前也想过,但是这个好像有点多此一举。

而且 Windows 要填入什么数据也是他自己决定的,可能是 0xcc 可能是 0xdd 这个是操作系统决定的。

要做到这一点就要对 Windows 操作系统的内存管理有很深入的了解才行,而且可能还需要很多 CPU 方面的知识。

这是我个人的看法,有不便的地方请以原谅。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-3 15:08:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

。。。。。来教你们点C/C++的基本知识。

所有的指针,是不可能获得它的大小的,对于字符串指针来说,还稍微好点,可以用strlen()来获取长度,其原理也是在内存中找到一个'\0'为止的。对于楼主的例子,一个数组变量,比如char buf[255];可以用sizeof(buf)来获取大小。

而且,在编程的时候,如果设计合理,根本不可能碰到需要计算你自己动态分配的一块内存的大小的,这个值应该是个常数。

7

主题

65

帖子

70

积分

注册会员

Rank: 2

积分
70
QQ
发表于 2004-6-17 18:44:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

同意楼上的

5

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2004-6-17 18:49:00 | 显示全部楼层

Re:一个编程难题,求高手指教!

同意
没必要这样做,一般来说sizeof就够了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-2 07:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表