我在使用C ++程序时遇到了麻烦。它一直给我一个运行时错误#2 - S.它虽然构建良好。它建立得很好。 Main应该调用另外两个函数,一个将int放入一个数组,另一个反转数组在数组上的位置,实际上是创建一个'reverse'数组。
#include "stdafx.h"
#include <iostream>
#include <array>
using namespace std;
void storeArray(int[], int);
void flipArray(int[], int);
int main()
{
const int arraysize = 10;
int foo[arraysize]; // everyone seems to use foo so I thought I'd try it
storeArray(&foo[arraysize], arraysize);
cout << endl;
flipArray(&foo[arraysize], arraysize);
return 0;
}
void storeArray(int foo[], int arraysize)
{
int counter;
counter = 0;
while (counter < arraysize)
{
cout << "Enter number " << (counter+1) << " : ";
cin >> foo[counter]; counter++;
}
return;
}
void flipArray(int foo[], int arraysize)
{
int counter2;
int counter3;
counter2 = 0;
counter3 = 9;
for (counter2; counter2 <= 9; counter2++)
{
cout << "Value number " << (counter2 + 1) << " is " << foo[counter3] << endl;
counter3--;
}
cout << endl;
return;
}
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
storeArray(&amp; foo [arraysize],arraysize);
这会将地址传递过去 foo
改为使用:
storeArray(foo, arraysize);
和
void storeArray(int* foo, int arraysize)
同样地:
编辑:刚刚注意到你flipArray(&amp; foo [arraysize],arraysize);
#include <array>
并使用了C风格的数组。不是#include <array>
中定义的C ++ STL数组