抛出异常:写入访问冲突。 ** a **是0x1。发生了

时间:2017-12-07 15:15:46

标签: arrays

我在我的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;
    }
}

我认为两个片段都做了类似的事情,但为什么第一个片段不正确?我现在很困惑,我感谢任何人都可以提出一些建议吗?提前谢谢!

0 个答案:

没有答案