这是我划分的一段代码。我基本上需要创建3个函数:
我的问题是我得到了
C2664错误:无法将参数1从int [6] [6]转换为int(*)[]。
我无法弄清楚我的代码有什么问题。我还想检查一下我是如何编写指针来填充和打印数组的。
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <time.h>
#include <iomanip>
#include <array>
#include <algorithm>
using namespace std;
const int AS = 6;
void FillingRandomly(int *);
void printing(int *);
int c;
int main()
{
int funny = 0;
int timpa = 0;
int counter = 0;
int Array[AS][AS];
srand(time(0));
FillingRandomly(Array);
cout << "The unsorted array is" << endl << endl;
printing(Array);
cout << "The sorted array is" << endl << endl;
system("PAUSE");
return 0;
}
void FillingRandomly(int *Array) {
*Array = rand()%87 +12;
*Array ++;
}
void printing(int *ArrayPtr) {
int counter = 0;
while(*ArrayPtr<AS*AS) {
cout<<*ArrayPtr;
*ArrayPtr++;
if (*ArrayPtr%AS == 0)
cout << endl << endl;
}
}
答案 0 :(得分:0)
不要使用指向int
的指针,因为你想将数组而不是指针传递给你的函数。
另外,通过引用传递它。为此,请更改函数的声明:
void FillingRandomly(int (&Array)[AS][AS]);
void printing(const int (&Array)[AS][AS]);
(printing
的声明不同,因为它不需要更改数组)
定义必须以相同的方式编写:
void FillingRandomly(int (&Array)[AS][AS])
{
...
}
另请注意,在C ++数组中,有时(或最常见 - 取决于您所询问的对象)由标准库类表示,如std::vector
或std::array
。我不会展示使用它们来保持我的答案集中的代码。