一个结构体变量的郁闷问题!大家帮帮忙

pzh508 2007-07-21 05:35:40
结构体如下定义

struct pT
{
WORD nLen;
char * m_pR;
};

然后定义一个全局的结构体变量
pT * m_pTest;

之后进行内存分配
m_pTest = new pT[10] ;

那么在程序退出的时候如何可以获取m_pTest申请的结构体的个数??(在这里举的例子是申请了10个)
...全文
279 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pzh508 2007-08-20
  • 打赏
  • 举报
回复
Chiyer(星羽) ( ) 信誉:100 2007-7-22 13:31:02 得分: 0
个数
int cnt = _msize(m_pTest) / sizeof(pT);

========================


这种方法是获取不了正确的长度的



pzh508 2007-07-22
  • 打赏
  • 举报
回复
C++这点很不好,如果是delphi,一个length函数就可以获得
星羽 2007-07-22
  • 打赏
  • 举报
回复
个数

int cnt = _msize(m_pTest) / sizeof(pT);
jinwei1984 2007-07-21
  • 打赏
  • 举报
回复
学习!!
只知道释放的时候 delete []m_pTest 会自动释放掉所有的长度 函数会自动搜索处理


vsfan 2007-07-21
  • 打赏
  • 举报
回复
需要自己定义counter计数
或者使用auto_pointer这种东西
Inhibitory 2007-07-21
  • 打赏
  • 举报
回复
对于用new分配的数组,不能直接获得其中元素的个数,得自己管理一个记录这个数组长度的变量。如:
int length = 10;
m_pTest = new pT[length];
以后就用这个length来进行处理,作为数据的长度,或者你可以用一个类来管理也行,如:
class TT {
public:
TT(int length): mLength(length) {
this->mPT = new pT[this->mLength];
}

~TT() {
delete[] this->mPT;
this->mPT = NULL;
}

int getLength() {
return this->mLength;
}

private:
int mLength;
pT *mPT;
};

在使用类TT时,就可动态的分配n个pT变量,又可以知道分配了多少个:
TT t1(10);
TT t2(20);

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧