张小桐 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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵