在 C++ 中返回一个数组

2023-11-27

假设我有一个数组

int arr[] = {...};
arr = function(arr);

我的功能是

 int& function(int arr[])
 {
//rest of the code
        return arr;
 }

我在这里犯了什么错误?


 int& function(int arr[])

在此函数中,arr 是一个指针,无法再次将其转回数组。它是一样的

int& function(int* arr)

int arr[] = {...};
arr = function(arr);

假设该函数设法返回对数组的引用,这仍然不起作用。您不能分配给数组。最好的情况是你可以将结果绑定到“X ints 数组的引用”(使用 typedef,否则语法会变得非常难看):

typedef int ten_ints[10];

ten_ints& foo(ten_ints& arr)
{
   //..
   return arr;
}

int main()
{
    int arr[10];
    ten_ints& arr_ref = foo(arr);
}

但是,完全不清楚您问题中的代码应该实现什么目的。您在函数中对数组所做的任何更改都将对调用者可见,因此没有理由尝试返回数组或将其分配回原始数组。


如果您想要一个可以分配并按值传递的固定大小的数组(复制内容),那么有std::tr1::array (or boost::array). std::vector也是一个选项,但这是一个动态数组,因此不是完全等价的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中返回一个数组 的相关文章

随机推荐

  • Angular 圆形模块导入

    我有两个模块 其组件相互使用 所以我必须在 test 中导入 word 在 word 中导入 test gt 抛出错误 我该怎么办 模块 测试 NgModule declarations AppTest1Component AppTest2
  • Websphere 所有日志都将转到 SystemOut.log

    我在我的应用程序中使用 Log4j 并有一些用于调试和错误的附加程序 我在tomcat上测试过 工作正常 在各自的文件中生成所有日志 但是当我在 WAS6 1 上部署代码时 所有日志仅在 SystemOut log 内生成 请帮忙 问题可能
  • VS 11 Beta 无法启动进程,因为尚未提供文件名

    这是我构建测试项目时得到的结果 这样我就无法运行我的测试 因为 VS 没有发现它们 查看留言 Unexpected error detected Check the Tests Output Pane for details 在窗口底部 现
  • 我怎样才能让 gitbash 找到 javac 命令?

    我创建了我的 git 存储库并提交了它 插入一个java文件并想要编译它 但它给了我这个 Bernard BERNARD PC c users bernard desktop git2 master javac TestGUI java s
  • Clang 链接器问题(从源代码到 gcc-snapshot)

    我似乎无法让它发挥作用 我配置了 with gcc toolchain 在 equals 之后我把 gcc 所在的目录 usr lib gcc snapshot bin 我还查看了 clang 链接器问题 但我不知道如何获得接受的答案来找到
  • Volley Android 网络库

    关于在我的项目中使用 Volley 我有几个问题 这个库可以在任何 Java 项目中使用还是只能在 Android 项目中使用 我看到多个分支here并且没有关于从哪个分支开始的文档 我应该从哪个分支开始 您如何将该库集成到您自己的项目中
  • Typescript:Promise 的子类/扩展:不引用 Promise 兼容的构造函数值

    我正在尝试取消我的asyncTypescript 中的方法调用 为此 我创建了一个新的 Promise 类型 它继承自Promise class CancelablePromise
  • 考虑每行上所有可能的排列,查找元胞数组的唯一行

    我有元胞数组A维度的m k 我想保留行A unique 最多为 k 个单元格 棘手 的部分是 最多为 k 个单元格 考虑k细胞中的i第 行A A i 可能会有一排j of A A j 这相当于A i 直到重新排序k细胞 这意味着例如如果k
  • git-创建一个分支,稍后将推送到远程

    我有一个脚本 它会自动创建一个新分支 其名称基于外部信息 JIRA 票证 在提交并推送一些代码之前我不想创建远程分支 但我不想必须执行 git push set upstream origin 换句话说 我想在推送之前设置上游 git ch
  • 如何加密密码以便稍后将其保存在数据库或文本文件中?

    我希望我的应用程序将加密的密码保存在数据库或文本文件中 假设任何人都可以打开数据库或文本文件 我该如何做到这一点 复制 加密 散列数据库中的纯文本密码 不重复我要求提供特定于 NET 的代码 编辑 我正在保存密码以供以后使用 我需要对其进行
  • 创建单个 python 可执行模块

    伙计们 我在模块中有很多 python 代码 这些代码驻留在多个 python 包中 现在我需要创建单个 python 可执行模块或文件 其中将包含所有这些文件 因此它将在 Windows 和 Linux 服务器上运行 有哪些可能的解决方案
  • 用默认值初始化字段是多余的

    我真的可以信任 NET 来初始化字段 如整数 结构等 吗 如果我仍然想初始化这些字段怎么办 会产生什么影响 The C 规范第 305 页上的说明 17 4 4 字段的初始值 无论是静态字段还是实例字段 都是该字段的默认值 第 12 2 节
  • GWT 日志记录设置

    我正在使用 GWT 2 1 java util logging仿真记录客户端消息 根据文档 提供了两个适用于客户端日志记录的格式化程序 TextFormatter 和 HTMLFormatter 任何人都可以提供有关如何设置格式化程序并将其
  • 我正在尝试复制文件,但收到错误消息

    我是 postgres 的新手 可能缺少一些愚蠢的东西 例如 我的目录的正确名称 有人可以指导我吗 我正在遵循 Anthony DeBarros 的 实用 SQL 一书的说明 Code copy us counties 2010 from
  • easy_install-2.7 的问题

    安装 easy install 并尝试使用它来安装 python 包后 它失败了 root server easy install 2 7 pip Searching for pip Reading http pypi python org
  • android 设置特定时间通知

    我意识到这个问题以前已经被问过 但我对这个问题一筹莫展 我有一个警报管理器来设置通知 public void to reminder View view Intent intent new Intent this Notification
  • 从向量创建Mat

    我对计算机视觉和 opencv 库非常陌生 我已经进行了一些谷歌搜索 试图找到如何从 Point2fs 向量制作新图像 但没有找到任何有效的示例 我见过vector
  • Java 和 Mojave 的强化运行时

    我目前分发一个 Java 应用程序 打包并签名 using pkgbuild在 macOS 上 最近 苹果警告开发者 在即将发布的 macOS 版本中 Gatekeeper 将要求开发人员 ID 签名的软件经过公证的由苹果公司 阅读公证文件
  • 使用 numpy 滚动最大值

    这计算了 滚动最大值 A 类似于滚动平均值 在长度的滑动窗口上K import numpy as np A np random rand 100000 K 10 rollingmax np array max A j j K for j i
  • 在 C++ 中返回一个数组

    假设我有一个数组 int arr arr function arr 我的功能是 int function int arr rest of the code return arr 我在这里犯了什么错误 int function int arr