张小桐 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 的指针
    除非使用引用或者双重指针

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

报告相同问题?

悬赏问题

  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题