以下代码在 Code::Blocks 中编译和运行,但在 VS2010 中出现问题和错误:“test2.exe 中 0x770815de 处的未处理异常:0xC0000005:写入位置 0x00000002 的访问冲突。”
我意识到代码有点危险,它基本上是对我为另一个项目的想法进行原型设计。我想要做的是传递对任何给定数量的整数的引用,后跟一个值。然后将此值放入引用的整数中,鲍勃就是你的叔叔。它有效,这很好。但不是在困扰我的 VS2010 中。我不是最有经验的指针,所以不知道是我做错了什么还是只是这种操作不是VS2010喜欢的。这是一个问题,因为我正在测试的项目都在 VS2010 中!所以我需要这个来工作!
编辑:对不起,我是 Code:Blocks 的新手。我想我应该指定我在 Code::Blocks 中使用的编译器?:DI 使用 GNU GCC 编译器(或类似的东西)的 miniGW(或其他东西)实现。我希望它对您体验 Code::Blocks 用户有意义!
#include <iostream>
#include <stdarg.h>
using namespace std;
void getMonkey(int Count, ... )
{
int test;
va_list Monkeys;
va_start(Monkeys, Count );
for(int i = 0; i < (Count / 2); i++ )
{
*va_arg(Monkeys, int*) = va_arg(Monkeys, int);
}
va_end(Monkeys);
}
int main()
{
int monkey1 = 0;
int monkey2 = 0;
int monkey3 = 0;
getMonkey(6, &monkey1, 2, &monkey2, 4, &monkey3, 5);
cout << monkey1 << " " << monkey2 << " " << monkey3;
return 0;
}