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