cnw2015
cnw2015
2017-10-23 09:43
采纳率: 100%
浏览 2.6k

新手提问,c++里,一个未知长度的动态数组,在长度增加的同时,也要给该数组赋值,如何实现?

如题。我想用realloc,但是网上找的代码要交换指针[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/10.gif][/img]
int main(int argc, char* argv[])

{

char *p,*q;

p = (char *)malloc(10);

q = p;

p = (char *)realloc(p,10);

printf("p=0x%x/n",p);

printf("q=0x%x/n",q);

return 0;   

}

然而我并不知道这个数组长度何时停止增加,而且,在长度增加的时候我就要给它赋值。
想法用代码表示:
int length = 0;//数组长度
int *p = NULL;//动态数组
p = (int *)malloc(1);//初始定义数组长度为1
for(int i = 0; i<max_cnt; i++)
{
switch(condition)
{
case con1:
length++;//满足条件,数组长度增加,每次只+1
p = realloc(p, length);//给数组自身扩容,我知道这样写是不对的,求教如何实现
p[length-1] = i;//给最新扩充的该int空间赋值
break;

//... 其他 case
}
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

相关推荐