将函数的静态数组返回到main()函数中的另一个数组

若昂·维斯卡诺(JoãoViscaino)

我已经弄清楚了如何使这一代码有效,但是在这里无法详细解释这两个代码有何不同。

不正确的代码:

const int nRows = 2;
const int nCols = 2;
int * colSum (int [nRows][nCols]);
int * rowSum (int [nRows][nRows]);

int main() {

    int my2Darray[nRows][nCols] = {{10, 20}, {30, 40}};
    int totalsByColumn[nCols] = {};
    *totalsByColumn = *(colSum(my2Darray));
    
    for (int i = 0; i < nCols; i++) {
        cout << totalsByColumn[i] << endl;
    } 
}

int * colSum (int arrayArg[nRows][nCols]) {

    static int arr[nRows] = {};

    for (int i = 0; i < nCols; i++) {
        for (int rowcount = 0; rowcount < nRows; rowcount++) {
            arr[i] += arrayArg[rowcount][i];
        }
    }
    return arr;
}

我得到40 0作为输出。

然后,我通过执行以下操作修复了该问题:

int main() {

    int my2Darray[nRows][nCols] = {{10, 20}, {30, 40}};
    int *totalsByColumn = colSum(my2Darray);
    
    for (int i = 0; i < nCols; i++) {
        cout << totalsByColumn[i] << endl;
    } 
}

输出是40 60,正是我想要的。

我只是通过在我的第一段代码中使用解引用运算符来衰减到totalsByColumn的第一个元素吗?我觉得可能会有一种更快的方式将列和行加在一起并将它们分配给main函数中的数组,但是只要我愿意,我暂时就可以了。

埃雷里卡

我只是通过在我的第一段代码中使用解引用运算符来衰减到totalsByColumn的第一个元素吗?

是。

我觉得可能会有更快的方式将列和行加在一起

当然。还有不同于您的解决方案的线程安全方法。一种简单的方法是使用输出迭代器直接将其写入需要结果的数组:

int* colSum (int arrayArg[][nCols], int out[]) {
    for (int i = 0; i < nCols; i++) {
        out[i] = 0;
        for (int rowcount = 0; rowcount < nRows; rowcount++) {
            out[i] += arrayArg[rowcount][i];
    // ...

int totalsByColumn[nCols];
colSum(my2Darray, totalsByColumn);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

函数将数组返回到另一个函数>未捕获的TypeError

来自分类Dev

从另一个数组返回PHP中的关联数组的函数

来自分类Dev

从多次点击中获取坐标并将它们返回到一个数组中以在另一个函数中使用

来自分类Dev

从数组匹配值并从函数返回另一个数组

来自分类Dev

函数应该将具有相同属性的项目返回到一个数组中

来自分类Dev

使用指针将一个数组的元素复制到另一个数组的函数

来自分类Dev

C ++-将数组返回主函数并将数组传递给另一个函数

来自分类Dev

尝试使用reducer函数将一个数组中的所有值添加到JS中的另一个数组中

来自分类Dev

在另一个数组中的映射函数中进行映射

来自分类Dev

从另一个类的构造函数将数组传递到类函数中

来自分类Dev

如何将函数输出插入到另一个函数的数组中

来自分类Dev

将数组从一个函数传递到另一个函数-一个数组为空,另一个函数不是吗?

来自分类Dev

从void函数返回到另一个void函数在C ++中合法吗?

来自分类Dev

如何从另一个数组中的数组中删除值而不使用大长函数?

来自分类Dev

从nodejs中的函数返回一个数组

来自分类Dev

在 onOpen 函数中返回一个数组

来自分类Dev

使用另一个数组中的值返回一个数组中的数组

来自分类Dev

函数根据另一个数组的值从一个数组中提取值

来自分类Dev

从一个函数返回的数组没有被另一个函数捕获

来自分类Dev

将Firebase数据库阵列返回到另一个函数,但返回空

来自分类Dev

将对象数组与另一个数组循环函数进行比较

来自分类Dev

PHP - 内置函数用另一个数组中的特定元素填充数组

来自分类Dev

将布尔值从一个函数返回到另一个函数-VBA

来自分类Dev

如何将字符串从一个函数返回到另一个函数?

来自分类Dev

将一个数组中的数组元素与另一个数组分开-Python

来自分类Dev

将一个数组(键)中的对象数组变成另一个数组(值)

来自分类Dev

从另一个函数中调用python中的函数(为该函数的变量创建一个数组)

来自分类Dev

JS变量范围:在一个函数中放入一个数组,然后在另一个函数中访问它

来自分类Dev

Python 函数将类型作为参数返回到另一个脚本

Related 相关文章

  1. 1

    函数将数组返回到另一个函数>未捕获的TypeError

  2. 2

    从另一个数组返回PHP中的关联数组的函数

  3. 3

    从多次点击中获取坐标并将它们返回到一个数组中以在另一个函数中使用

  4. 4

    从数组匹配值并从函数返回另一个数组

  5. 5

    函数应该将具有相同属性的项目返回到一个数组中

  6. 6

    使用指针将一个数组的元素复制到另一个数组的函数

  7. 7

    C ++-将数组返回主函数并将数组传递给另一个函数

  8. 8

    尝试使用reducer函数将一个数组中的所有值添加到JS中的另一个数组中

  9. 9

    在另一个数组中的映射函数中进行映射

  10. 10

    从另一个类的构造函数将数组传递到类函数中

  11. 11

    如何将函数输出插入到另一个函数的数组中

  12. 12

    将数组从一个函数传递到另一个函数-一个数组为空,另一个函数不是吗?

  13. 13

    从void函数返回到另一个void函数在C ++中合法吗?

  14. 14

    如何从另一个数组中的数组中删除值而不使用大长函数?

  15. 15

    从nodejs中的函数返回一个数组

  16. 16

    在 onOpen 函数中返回一个数组

  17. 17

    使用另一个数组中的值返回一个数组中的数组

  18. 18

    函数根据另一个数组的值从一个数组中提取值

  19. 19

    从一个函数返回的数组没有被另一个函数捕获

  20. 20

    将Firebase数据库阵列返回到另一个函数,但返回空

  21. 21

    将对象数组与另一个数组循环函数进行比较

  22. 22

    PHP - 内置函数用另一个数组中的特定元素填充数组

  23. 23

    将布尔值从一个函数返回到另一个函数-VBA

  24. 24

    如何将字符串从一个函数返回到另一个函数?

  25. 25

    将一个数组中的数组元素与另一个数组分开-Python

  26. 26

    将一个数组(键)中的对象数组变成另一个数组(值)

  27. 27

    从另一个函数中调用python中的函数(为该函数的变量创建一个数组)

  28. 28

    JS变量范围:在一个函数中放入一个数组,然后在另一个函数中访问它

  29. 29

    Python 函数将类型作为参数返回到另一个脚本

热门标签

归档