在C++中作为参数发送的零输出数组

在C++中作为参数发送的零输出数组,c++,arrays,C++,Arrays,如何使数组中的所有元素都作为参数发送 int myArrayFunction(int p_myArray[]) { p_myArray[] = {0};//compiler error syntax error: ']' . . } 有一个循环。这意味着您还需要为函数指定数组的大小。带有循环。这意味着您还需要为函数指定数组的大小。不,您不能。没有足够的信息。您还需要传递数组的长度 int myArrayFunction(int p_myArray[], int arrayLength) { /

如何使数组中的所有元素都作为参数发送

int myArrayFunction(int p_myArray[]) {
p_myArray[] = {0};//compiler error syntax error: ']'
.
.
}

有一个循环。这意味着您还需要为函数指定数组的大小。

带有循环。这意味着您还需要为函数指定数组的大小。

不,您不能。没有足够的信息。您还需要传递数组的长度

int myArrayFunction(int p_myArray[], int arrayLength) {
// --------------------------------------^ !!!
然后可以使用或将数组填充为零{0}仅在初始化时有效

    std::fill(p_myArray, p_myArray+arrayLength, 0);
或者,切换到使用std::vector,则不需要跟踪长度

int myArrayFunction(std::vector<int>& p_myArray) {
    std::fill(p_myArray.begin(), p_myArray.end(), 0);

不,你不能。没有足够的信息。您还需要传递数组的长度

int myArrayFunction(int p_myArray[], int arrayLength) {
// --------------------------------------^ !!!
然后可以使用或将数组填充为零{0}仅在初始化时有效

    std::fill(p_myArray, p_myArray+arrayLength, 0);
或者,切换到使用std::vector,则不需要跟踪长度

int myArrayFunction(std::vector<int>& p_myArray) {
    std::fill(p_myArray.begin(), p_myArray.end(), 0);
使用std::fill。您需要以某种方式将数组的大小传递给函数。这里有一个使用模板大小方法的例子,但是你应该考虑传递一个规则大小的参数。
template<size_t size>
int myArrayFunction(int (&p_myArray)[size]) {
    std::fill(p_myArray, p_myArray + size, 0);
}
使用std::fill。您需要以某种方式将数组的大小传递给函数。这里有一个使用模板大小方法的例子,但是你应该考虑传递一个规则大小的参数。
template<size_t size>
int myArrayFunction(int (&p_myArray)[size]) {
    std::fill(p_myArray, p_myArray + size, 0);
}

这种分配只适用于新数组的初始化,而不适用于修改现有数组

当您获得int[]时,实际上有一个指向数组所在内存中某个区域的指针。一旦离开函数,将其指向其他对象(如文字数组)将不会有效


您最多只能使用[]运算符或库函数更新单个单元格。例如,p_myArray[i]=0可以在i上的循环中执行此操作,但需要将大小传递给函数

这种分配只适用于新数组的初始化,而不适用于修改现有数组

当您获得int[]时,实际上有一个指向数组所在内存中某个区域的指针。一旦离开函数,将其指向其他对象(如文字数组)将不会有效


您最多只能使用[]运算符或库函数更新单个单元格。例如,p_myArray[i]=0可以在i上的循环中执行此操作,但需要将大小传递给函数

使用std::fill\n。您需要传递元素数。

使用std::fill\n。您需要传递元素的数量。

如果您的p_myArray[]有一个终止字符,您可以循环直到找到该字符。 例如,如果它是以null结尾的字符数组形式的字符串,则在找到“\0”时将停止

int myArrayFunction(char p_myArray[])
{

   for(int i=0;p_myArray[i]!='\0';i++)
       p_myArray[i]=0;

   //..
}
如果p_myArray的数字范围为0到100,则可以使用101表示数组结束,依此类推


因此,分析p_myArray的使用和内容,如果它可以有一个永远不会用作数据的值,则可以将其用作终止代码来标记结束。

如果p_myArray[]具有终止字符,则可以循环直到找到该字符。 例如,如果它是以null结尾的字符数组形式的字符串,则在找到“\0”时将停止

int myArrayFunction(char p_myArray[])
{

   for(int i=0;p_myArray[i]!='\0';i++)
       p_myArray[i]=0;

   //..
}
如果p_myArray的数字范围为0到100,则可以使用101表示数组结束,依此类推

因此,分析p_myArray的用法和内容,如果它可以有一个永远不会用作数据的值,则可以将其用作终止代码来标记结束