gpt4 book ai didi

c++ - 如何通过引用 C++ 传递动态数组

转载 作者:行者123 更新时间:2023-11-27 23:59:57 25 4
gpt4 key购买 nike

我无法理解如何在 C++ 中通过引用传递动态数组。

我在这个独立的小代码示例中重现了这个问题:

#include <iostream>

using namespace std;

void defineArray(int*);

int main()
{
int * myArray;
defineArray(myArray);

/** CAUSES SEG FAULT*/
//cout<<(*(myArray)); //desired output is 0
return 0;
}

void defineArray(int*myArray)
{
int sizeOfArray;
cout<<"How big do you want your array:";
cin>>sizeOfArray;

/** Dynamically allocate array with user-specified size*/
myArray=new int [sizeOfArray];

/** Define Values for our array*/
for(int i = 0; i < sizeOfArray; i++)
{
(*(myArray+i))=i;
cout<<(*(myArray+i));
}
}

最佳答案

myArray 是通过值本身传递的,对 myArray 的任何修改(例如 myArray=new int [sizeOfArray];)与处理原始变量, main() 中的 myArray 仍然悬空。

要使其通过引用传递,请更改

void defineArray(int*myArray)

void defineArray(int*& myArray)

关于c++ - 如何通过引用 C++ 传递动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39929041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com