可以通过函数来改变数组的大小吗?

发布于 2021-11-04 01:37:34 字数 24 浏览 819 评论 12

我想通过函数来改变数组的大小,不知道能不能实现。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

离不开的别离 2021-11-09 00:51:08

可以给我写个例子吗?谢谢了

卸妝后依然美 2021-11-09 00:50:53

给你贴了。

混吃等死 2021-11-09 00:50:39

引用来自“欣欣向荣”的答案

我用的C++,不知道是否可以。

已下线请稍等 2021-11-09 00:42:01

我运行的时候没错~~.仔细看,确实错了,分配_new的时候应该new int[old_len+1].

浅沫记忆 2021-11-09 00:38:41

引用来自“周翼翼”的答案

你的代码有问题.在insert里让a=new T[++n]并不会使函数外的a得到新内存.

应该 void insert(T **a,...);

然后让*a= new T[++n];

或者干脆 T* insert(...) return 你在函数内新的内存.

#include<stdio.h>

int* insert(int* old,int insert_index,int new_num,int old_len)

{

  int* _new = new int[old_len];

  for(int i=0;i<insert_index;++i)

  {

    _new[i] = old[i];

  }

  _new[insert_index] = new_num;

  for(int i=insert_index+1;i<old_len+1;i++)

  {

    _new[i] = old[i-1];

  }

  return _new;

}

 

int main()

{

  int a[] = {1,2,3,4,5};

  int *b = insert(a,2,6,5);

  for(int i=0;i<6;i++)

  printf("%d", b[i]);

  delete []b;

  return 0;

}

归途 2021-11-09 00:23:24

但是这个程序有问题。应该是内存分配的问题。

够钟 2021-11-08 23:29:56

#include<iostream>

甜柠檬 2021-11-08 22:21:41

看过STL的源码?

他的资源管理就是动态的

沦落红尘 2021-11-08 18:11:36

你的数组如何定义的

梅窗月明清似水 2021-11-08 15:16:57

我用的C++,不知道是否可以。

凡尘雨 2021-11-06 13:31:44

你要說你用的什麼編程語言。Java中的ArrayList不就是這樣搞的?還有VB中的Redim Preserve。

伪装你 2021-11-04 17:41:00

引用来自“欣欣向荣”的答案

我用的C++,不知道是否可以。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文