cnw2015 2017-10-23 09:43 采纳率: 100%
浏览 2749
已采纳

新手提问,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条回答 默认 最新

  • threenewbee 2017-10-24 08:17
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?