张小桐 2019-11-03 17:00 采纳率: 0%
浏览 229
已采纳

c++做的一个动态数组,出现了个问题,求大佬帮助!!

c++动态数组,在creat函数创建了一个动态数组后,在display函数中传过去的array1没有值

#include "pch.h"
#include <iostream>
using namespace std;

int creat(int *array1, int *array2)
{
    int a, i, b;
    int num = 1;
    int c = 0;
    array1 = new int[num];
    cin >> a;
    array1[0] = a;
    while (1)
    {
        if (c == 2)
            break;
        cin >> b;
        int array2num = num + 1;
        array2 = new int[array2num];
        for (i = 0; i < num; i++)
        {
            array2[i] = array1[i];
        }
        array2[num] = b;
        delete[]array1;
        array1 = array2;

        num++;
        cout << "1继续输入2退出" << endl;
        cin >> c;
    }

    return num;
}
void display(int array1[], int num)
{
    for (int i = 0; i < num - 1; i++)
    {
        cout << array1[i] << endl;
    }
}
int main()
{
    int *array1 = 0;
    int *array2 = 0;
    int num;
    num = creat(array1, array2);
    display(array1, num);
    del(array1, num);
    delete[] array1;

    system("pause");
    return 0;
}

如图
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-03 19:59
    关注

    int creat(int *array1, int *array2)
    这个函数不能改变主程序的
    array1 array2 的指针
    除非使用引用或者双重指针

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 为啥快手广告联盟的广告这么难出来
  • ¥15 k8s集群重启后,kubelet一直报systemctl restart kubelet.service "Failed to delete cgroup paths"
  • ¥15 微信小程序构建工具类发布到npm,install后报错
  • ¥15 amesim液压仿真问题
  • ¥15 python解析json文件时报错
  • ¥15 MATLAB优化设计
  • ¥15 ANN预测模型 200大米
  • ¥20 优秀学生的问题 oj java
  • ¥15 scratch-gui 如何集成进 react native
  • ¥15 把全局悬浮窗改为局内悬浮窗