例如:
typedef struct
{
timeb time;
long state;
} s_time;
函数:
bool a(s_time* ps_time);//ps_time指向一个s_time数组
在函数a内部,怎样做才能得到ps_time所指内存块的大小,以确保对该内存块赋值时不会越界?
typedef struct
{
timeb time;
long state;
} s_time;
函数:
bool a(s_time* ps_time);//ps_time指向一个s_time数组
在函数a内部,怎样做才能得到ps_time所指内存块的大小,以确保对该内存块赋值时不会越界?
解决方案 »
- 用vs2008刚学mfc创建一个sdi程序出现个小问题
- 界面问题~只说下方法啦~大家看看
- 本人刚接触mfc,老师要求在打开的图片上写字,找了个书上的例子,调试出错,请高手指点!!谢谢!!!没什么分了,不好意思!!
- Vista下用PreviewHandler预览Word文档,如何只显示第一页?
- 仿百度,谷歌写的一个计算软件,可以进行高精度的大数计算,请高手指点指点!
- 请教一个英文操作系统中,中文字符为乱码的问题!
- VC高手求助,有关CBitmapButton,急急急!
- SQL问题:如何检索某一字段为空(或空格)的所有记录
- 为什么我的USB摄像头(WDM驱动的)无法修改制式?
- νM2P???WMV
- 啥是ATL啊?
- 如何设置Picture Control 范围的颜色?
bool a(s_time* ps_time, UINT nSize);
ps_time指向的是一个数组,而*ps_time只代表数组的第一个元素(如果未作ps_time增减变化的话),sizeof(*ps_time)只能获得一个结构体元素的大小。
{
int nSize; //结构大小
timeb time;
long state;
} s_time;
这样ok?
您可以
(1)在结构中附加结构大小的信息(Windows.h中很多结构是这样)
typedef struct
{
size_t size;// =sizeof(s_time);
timeb time;
long state;
} s_time;(2)给函数一个额外的参数,表示大小(API很多就是这样)
bool a(s_time* ps_time,size_t size); //size=sizeof(s_time);(3)其他标记
比如字符串,就是用'\0'来表示结束。函数根据它的位置可以判别大小。