weixin_43763204
张小桐
采纳率83.3%
2019-11-03 17:00 阅读 215

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条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2019-11-03 19:59

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

    点赞 评论 复制链接分享

相关推荐