如何动态申请数组又不清空原来的数据呢? a = new int [6]; a = new int [8];这样的话,原来来的数据就没了怎么样才能申请,又不清空原来的数据呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 原来的数据没了? 你new出来的 没delete仍然还在堆中啊你保存下原来数据的指针不行么 一种方法是:a=(int *)realloc(a, sizeof(int)*8);不过注意realloc可能会移动起始位置,所以完整方法是:int *temp = a;a = (int *)realloc(a, sizeof(int) * 8);if(a != NULL){ // 要把原来的数据拷贝到新的地方去 memcpy(a, temp, sizeof(int)*length); // length用来保存长度 length = length + 8;}else{ printf("内存不足,分配失败!"); .....}另外一种方法是使用链表,逐个把a存其来,这个等你学数据结构再说。 动态数组,vector<int> ... vector 已经实现了你的功能 ListCtrl GetScrollPos() SetScrollPos的问题 求助 关于三层架构的构建 请问怎样把一个*.ocx加到一个工程中?谢谢! dbgrid 设置数据源能不能在程序里实现?如何实现? MFC的问题??????? DLL拦截网络封包! 这样的提示应该如何做呀! 请问如何定义i个CString 的数组?谢谢!! 请帮忙,问一个很菜的问题。 directdraw图像缩放失真 c++的socket怎么接受手机j2Me的请求,跨平台通信怎么实现? win7下VC调用外部批处理的问题
a=(int *)realloc(a, sizeof(int)*8);
不过注意realloc可能会移动起始位置,所以完整方法是:
int *temp = a;
a = (int *)realloc(a, sizeof(int) * 8);
if(a != NULL)
{
// 要把原来的数据拷贝到新的地方去
memcpy(a, temp, sizeof(int)*length); // length用来保存长度
length = length + 8;
}
else
{
printf("内存不足,分配失败!");
.....
}
另外一种方法是使用链表,逐个把a存其来,这个等你学数据结构再说。