相关疑难解决方法(0)

使用C通过引用传递数组

是的,我已经阅读了这个问题和答案:在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.

c++ parameters pass-by-reference

3
推荐指数
1
解决办法
972
查看次数

标签 统计

c++ ×1

parameters ×1

pass-by-reference ×1