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个回答

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问