我在我的C ++代码中试图cout
一个数组:
#include <iostream>
using namespace std;
void fun(int *a) {
a[3] = 1;
for (int i = 0; i<sizeof(a)/sizeof(a[0]); ++i) {
cout << a[i] << endl;
}
}
int main(int *arry) {
fun(arry);
system("pause");
}
我在第5行使用VS2017收到错误Exception thrown: write access violation.
**a** was 0x1. occurred
。
但是,如果我写'#34;通常&#34;如下所示,这没问题:
void fun() {
int a[3] = { 1 };
for (int i = 0; i<sizeof(a)/sizeof(a[0]); ++i) {
cout << a[i] << endl;
}
}
我认为两个片段都做了类似的事情,但为什么第一个片段不正确?我现在很困惑,我感谢任何人都可以提出一些建议吗?提前谢谢!