【新手提问】C++里,一个未知长度的动态数组,在长度增加的同时,也要给这个数组赋值,如何实现?
如题。我想用realloc,但是网上找的代码要交换指针
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
}
}

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
}
}
...全文
相关推荐
C++实现三维动态数组,赋值加减乘算法
C++实现三维动态数组,赋值,加减乘算法,适用于三维空间对象之间的运算实现。
C++中静态初始化数组与动态初始化数组详解
今天小编就为大家分享一篇C++中静态初始化数组与动态初始化数组详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
C/C++中获取数组长度的方法示例
主要介绍了C/C++中获取数组长度的方法,很实用的一种方法,需要的朋友可以参考下
C++实现数组类
C++实现数组类,获取数组长度,数组的输入,数组的输出,数组的复制。
cpp代码-(一维数组/动态存储)按指定长度生成动态数组,随机赋值给元素,而后输出原数组与逆置后数组
cpp代码-(一维数组/动态存储)按指定长度生成动态数组,随机赋值给元素,而后输出原数组与逆置后数组


新手乐园
