动态创建的对象数组的大小不可以是变量吗?

sandrafei 2006-04-06 12:09:58
事实上count的值是从数据库中实时取回来的,所以想要动态大小的对象数组:可是以下两种写法都
无法实现:
代码如下:
int count=3;
TLabel *lbl;
lbl=new TLabel[count];
或者这样写:
int count=3;
TLabel *lbl[count];
请问该怎么修改呢?
...全文
358 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maconel 2006-04-08
  • 打赏
  • 举报
回复
删除lbl[i]的时候,应该使用delete:
for (int i=0; i<NewFieldCount; i++) {
delete lbl[i];
lbl[i] = NULL;//delete后马上把指针设为NULL是个好习惯,
//不管后边的代码又给指针赋了什么值
}
delete[] lbl;
lbl = NULL;
sandrafei 2006-04-07
  • 打赏
  • 举报
回复
MEFULEU(没有作不到,只有想不到):
谢谢!我试了一下你的方法好像可以但是在删除的时候会出错,你再帮我看看我的代码有什么问题:
for (int i = 0; i < NewFieldCount; i++)
{
delete[] lbl[i];
}
delete[] lbl;
kmfangxun 2006-04-06
  • 打赏
  • 举报
回复
int Cnt=3;

TLabel **lbl;

lbl=new TLabel*;

for(int i=0;i< Cnt;i++)
{
lbl[i]=new TLabel(this);
lbl[i]->Parent=this;
lbl[i]->AutoSize=false;
lbl[i]->Width=100;
lbl[i]->Color=clRed;
lbl[i]->Caption=IntToStr(i);
lbl[i]->Left=i*120;
lbl[i]->Visible=true;
}
kmfangxun 2006-04-06
  • 打赏
  • 举报
回复

int Cnt=100;
TLabel *lbl[Cnt];

for(int i=0;i< Cnt;i++)
{
lbl[i]=new TLabel(this);
}
tianshu888 2006-04-06
  • 打赏
  • 举报
回复
int count=3;
TLabel *(lbl[count]);
chpst 2006-04-06
  • 打赏
  • 举报
回复
gz
我是这样做的可参考。
const int MaxCount = 1000;
TLabel *lbl[MaxCount];
MEFULEU 2006-04-06
  • 打赏
  • 举报
回复
int Cnt=3;

TLabel **lbl;

lbl=new TLabel*[Cnt];

for(int i=0;i< Cnt;i++)
{
lbl[i]=new TLabel(this);
lbl[i]->Parent=this;
lbl[i]->AutoSize=false;
lbl[i]->Width=100;
lbl[i]->Color=clRed;
lbl[i]->Caption=IntToStr(i);
lbl[i]->Left=i*120;
lbl[i]->Visible=true;
}

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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