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
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码