我想创建一个函数,它接受现有的9x9空整数数组,并插入从文件中获取的值(因此该函数也将文件名作为输入)。但我无法弄清楚如何正确地做到这一点,即使我尝试了很多不同的方法。基本上,这就是我所做的:
int board = new int[9][9] //The empty array
int addToArray(int *board, string filename) {
/* Code to insert values in each field is tested and works so
I will just show a quick example. The below is NOT the full code */
int someValue = 5;
board[0][0] = someValue;
/* Return a value depending on whether or not it succeeds. The variable 'succes'
is defined in the full code */
if (succes) {
return 0;
} else {
return -1;
}
}
与实际代码相比,这是一个非常简化的示例,但它是将指向数组的指针传递到某个函数的整体功能,并且具有修改数组的功能,我想要的。谁能告诉我怎么做?
答案 0 :(得分:0)
如果有人终于阅读了这个问题,我使用了Johnny的链接中的方法3。为方便起见,我复制粘贴代码并添加了一些注释......
// Make an empty, and un-sized, array
int **array;
// Make the arrays 9 long
array = new int *[9];
// For each of the 9 arrays, make a new array of length 9, resulting in a 9x9 array.
for(int i = 0; i < 9; i++)
array[i] = new int[9];
// The function to modify the array
void addToArray(int **a)
{
// Function code. Note that ** is not used when calling array[][] in here.
}
passFunc(array);
答案 1 :(得分:0)
应该只是
int **board
在函数参数中。
简单的规则是* name = name [],因此在数组中有很多[],你需要在参数中包含尽可能多的*。