gpt4 book ai didi

c++ - 指向 int 数组的指针,从另一个方法传递和使用它

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

我没有巩固我对 C++ 数组的学习,并且忘记了如何正确地做到这一点。我以前用 char 数组完成过,但它对 int 数组的效果不佳。

我声明了一个新的空白 int 数组:

int myIntArray[10];

所以这应该是一个 null 数组,对吗?

然后我为这个数组分配一个指针:

int *pMyArray = myIntArray

希望那是正确的。

然后我将其传递给其他地方的另一个方法:

anotherMethod(pMyArray)

我想将此指针分配给局部变量的位置(这是我不确定的地方):

anotherMethod(int *pMyArray){    
int myLocalArray[];
myLocalArray[0] = *pMyArray;
}

我没有收到任何编译错误,但我不确定这在某些方面是否正确。在此感谢任何和所有帮助和建议。

编辑:

我应该说出我想做的事。

真的很简单,我只想用另一种方法修改本地数组。

所以我有:

方法 1 将包含:

int myArray1[10] = {0};

方法 2 将指针传递给 myArray:

然后是一些代码来修改数组myArray 中的变量。

最佳答案

int myIntArray[10];

这是一个未初始化的数组。它不一定包含 0

int *pMyArray = myIntArray

好的,pMyArray 指向myIntArray 中的第一个元素。

anotherMethod(int *pMyArray){    
int myLocalArray[10];
myLocalArray[0] = *pMyArray;
}

这不会将您的指针分配给任何东西,它会将本地数组的第一个值分配给 pMyArray 指向的 int,记住,它是未初始化的.我在那里添加了 10,因为在 C++ 中不能有未知大小的数组。

要修改pMyArray指向的内容,需要通过引用传递:

anotherMethod(int *& pMyArray)

此外,如果您将其分配给自动存储中的某些值,则会导致未定义的行为,因为该内存在函数退出时不再有效。

关于c++ - 指向 int 数组的指针,从另一个方法传递和使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10283200/

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