【发布时间】:2012-04-23 15:10:26
【问题描述】:
我还没有巩固我对 C++ 数组的学习,并且忘记了如何正确地做到这一点。我之前用 char 数组完成了它,但它不适用于 int 数组。
我声明一个新的空白 int 数组:
int myIntArray[10];
所以现在这应该是一个空数组对吗?
然后我分配一个指向这个数组的指针:
int *pMyArray = myIntArray
希望那是正确的。
然后我将它传递给其他地方的另一个方法:
anotherMethod(pMyArray)
我想在哪里将此指针分配给一个局部变量(这是我真的不确定的地方):
anotherMethod(int *pMyArray){
int myLocalArray[];
myLocalArray[0] = *pMyArray;
}
我没有收到任何编译错误,但我不确定这在某些方面是否正确。对此表示赞赏的任何和所有帮助和建议。
编辑:
我应该说我想做的事。
真的很简单,我只想用另一种方法修改本地数组。
所以我有:
方法 1 将包含:
int myArray1[10] = {0};
方法 2 将传递指向 myArray 的指针:
然后是一些代码来修改数组myArray中的变量。
【问题讨论】:
-
使用
std::vector<int>可以解决所有问题。 -
一些测试代码可以帮助你弄清楚。不要依赖“知识”。测试一下!
-
如果您没有收到此程序的编译错误,那么您应该打开它们。在 GCC 中,这是
g++ -Wall。或者,更好的是-Wall -Werror。 -
-Wall并不是真正的“全部”,您应该使用-Wall -Wextra(但不要使用像-pedantic这样的愚蠢选项,见鬼!)。
标签: c++