我有一个程序,我希望传递一个数组 - 在这种情况下k[arrsize]
,这是funciton fillArray()
到另一个函数create_file()
的参数(相同的数组,填充随机数)。但是,我无法传递相同的数组,我想问一下如何做到这一点?
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <time.h>
#include <stdlib.h>
using namespace std;
const int arrsize = 20;
//int a[arrsize];
fstream p;
void fillArray(int k[arrsize])
{
srand((unsigned)time(NULL));
for (int i = 0; i<20; i++)
{
if (i % 2 == 0)
{
k[i] = -(rand() % 100);
}
else
{
k[i] = (rand() % 100);
}
}
}
void create_file(int k[arrsize])
{
p.open("danni.dat", ios::out);
for (int i = 0; i<20; i++)
{
p << k[i] << endl;
}
p.close();
}
int main() {
fillArray(k);
create_file(k);
return 0;
}
答案 0 :(得分:2)
你只是忘了定义一个数组:
int main() {
int k[arrsize];
fillArray(k);
create_file(k);
}
答案 1 :(得分:1)
通常,您不想传递整个数组,而是可能希望传递对它的引用。我建议你使用std :: array而不是C风格的数组。
#include <array>
void fill(std::array<int, 1>& a)
{
a[0] = 0;
}
int main()
{
std::array<int, 1> a = {};
fill(a);
return 0;
}