是的,我读过这个问题和答案: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 函数结束后,我立即收到以下运行时错误:
Program.exe 0xC00000005 中 0x773115de 处的未处理异常:访问冲突写入位置 0xcccccccccc。
我正在使用 Visual Studio,打开 Visual C++ 空项目。以及名为 main.cpp 的文件。这是否意味着它是用 C++ 编译器而不是 C 编译器编译的?如果是这样,我怎样才能打开一个只能编译 C 编译器的文件?我尝试用 main.c 重命名 main.cpp,但仍然有同样的问题。(我在问这个问题,因为我读了一些关于“按引用传递”的内容,发现它在 C 和 C++ 中是不同的。)
对不起这个非常基本的问题。
我将不胜感激任何帮助,
坐下。