gpt4 book ai didi

c++ - 使用 C 通过引用传递数组

转载 作者:太空狗 更新时间:2023-10-29 19:44:18 26 4
gpt4 key购买 nike

是的,我已经阅读了这个问题和答案:Passing an array by reference in C? .我有一个类似的问题,并从那个问题中实现了同样的想法。

但是,我仍然从下面的代码中得到一个错误:

#include <iostream>

void FillArray(int** myArray)
{
free( *myArray ) ;
* myArray = (int*) malloc(sizeof(int) * 2);

*myArray[0] = 1;
*myArray[1] = 2;
}

int main()
{
int* myArray = NULL;
FillArray(& myArray);
return 0;
}

我在 FillArray 函数结束后立即收到以下运行时错误:

Unhandled exception at 0x773115de in Program.exe 0xC00000005: Access violation writing location 0xcccccccccc.

我正在使用 Visual Studio,打开了 Visual C++ 空项目。文件名为 main.cpp。这是否意味着它是用 C++ 编译器而不是 C 编译器编译的?如果是这样,我怎样才能打开一个只由 C 编译器编译的文件?我尝试用 main.c 重命名 main.cpp,但仍然有同样的问题。 (我问这个问题,因为我读了一些关于“通过引用传递”的内容,发现它在 C 和 C++ 中是不同的。)

很抱歉这个非常基本的问题。

我将不胜感激,

坐下。

最佳答案

优先级没有像您预期的那样工作。试试这些:

(*myArray)[0] = 1;
(*myArray)[1] = 2;

(注意:iostream 不是 C。它是 C++。)

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

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