Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;将数组传递给方法问题_C++_Arrays_Methods - Fatal编程技术网

C++ C++;将数组传递给方法问题

C++ C++;将数组传递给方法问题,c++,arrays,methods,C++,Arrays,Methods,嘿,我有这个功能: void vdCleanTheArray(int (*Gen_Clean)[25]) { } 我想知道它接受什么样的数组并清除它 对不起,我有一些C++知识,有人问过我。 谢谢 它接受声明为 int array[25]; 应该“通过指针”传递,即通过对数组应用&运算符 vdCleanTheArray(&array); 至于如何清洁它。。。据我所知,上面的函数应该清理它,你应该写它,对吗?在函数内部,您可以使用解引用操作符*访问数组,如中所示 (*Gen_Cle

嘿,我有这个功能:

void vdCleanTheArray(int (*Gen_Clean)[25])
{

}
我想知道它接受什么样的数组并清除它

对不起,我有一些C++知识,有人问过我。
谢谢

它接受声明为

int array[25];
应该“通过指针”传递,即通过对数组应用
&
运算符

vdCleanTheArray(&array);
至于如何清洁它。。。据我所知,上面的函数应该清理它,你应该写它,对吗?在函数内部,您可以使用解引用操作符
*
访问数组,如中所示

(*Gen_Clean)[i]
您只需像清除任何其他数组一样“清除”它。取决于你所说的“清楚”是什么意思。用零填充?如果是这样,那么只需编写一个从0到24(或到
sizeof*Gen_Clean/sizeof**Gen_Clean
)的循环,将每个元素设置为零。

void vdCleanTheArray(int(*Gen u Clean)[25])可以被描述为“一个函数,其指针指向25个整数数组,但不返回任何内容。”

假设“清除”的意思是将所有值设置为0,则可以使用以下方法:

for (int i = 0; i < 25; i++) {
  (*Gen_Clean)[i] = 0;
}
for(int i=0;i<25;i++){
(*Gen_Clean)[i]=0;
}
<>注意,在C++中,C样式数组不能调整大小。如果需要可调整大小的数组,最好使用std::vector,如果需要固定大小的数组,最好使用std::array

<如果你是C++的新手,你可能不应该在这样的函数的周围。键入第一个参数的方式不是经常(或应该)在C++中看到的。

对于那些对int(*Gun-Curle)[25 ]的语法感到好奇的人,我相信它的类型是这样的,即,实际上被传递的指针指向25个INT的数组,因为通常C++会把一个参数“int *GeNeCURE(25)”分解成一个pto to A指针,而不是指向数组的指针。

我想我的人要我做的是清空或空掉正在传递的数组。你不能“清空”和数组。C样式数组是“不可空的”。它们有固定的尺寸。同样,“使数组为空”通常意味着“用零填充它”。最后,如果您需要取消分配(销毁)数组,在不知道它是如何分配的情况下是无法做到的(而且也不清楚为它编写专用函数的意义)。如果它是动态分配的,那么它就不再是一个25整数的数组了(这让我想知道为什么人们会使用如此笨拙的方式来传递某些东西,以达到如此“有趣”的限制)。我不知道这意味着什么->+1,我的第一个猜测是它是一个函数指针数组,但我不认为是这样。它是有效的c tho