声明可变大小的数组而不使用动态内存分配

2024-03-22

我想在函数中分配可变大小的二维数组而不使用 new 运算符,以便该二维数组可用于同一文件中的其他函数。

    void draw(int i)
    {   size=i;   }

    void assign(char symbol)
    {
        char one[size][size];
        /// ... Assigning values to one  ...
    }
    void display()
    {   /// Displaying values of one[size][size]
        for(int i=0;i<size;i++)
        {
            for(int j=0;j<size;j++)
            cout<<one[i][j];
            cout<<endl;
        }
    }

函数的执行顺序是绘制->分配->显示

这个问题可能很早就被问过。 但我的问题是.. -> 我无法在全局分配函数之外声明数组,因为大小值未知。 -> 我不能在“显示”函数中使用“一个”数组,因为它的范围仅限于“分配”函数。

而且我也不想使用 new 或 malloc 运算符。 如果有任何替代方案,请帮忙。


C++ 不支持堆栈分配的可变长度数组,例如 C99。你应该使用std::vector<T>反而。如果你真的想使用堆栈分配,你可以使用alloca().

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

声明可变大小的数组而不使用动态内存分配 的相关文章

随机推荐

  • 列表框未选择所选项目

    请参阅下面的代码视觉工作室2010ListBox 上方有一个 TextBox 通过绑定 当选择某个项目时 文本框可以变大或变小 这会导致列表框移动 当列表框移动时 所选项目不是被单击的项目 所选项目是移动的ListBox 上鼠标下方的项目
  • 从不同线程读取值

    我正在用 Go 编写可以进行大量并行计算的软件 我想从工作线程收集数据 但我不太确定如何以安全的方式做到这一点 我知道我可以使用通道 但在我的场景中 它们使事情变得更加复杂 因为我必须以某种方式在主线程中同步消息 等到每个线程发送一些内容
  • R下载。文件错误无法打开URl

    temp lt tempfile download file file connect me test gz temp 该网址存在是因为我可以将其放入浏览器中 但是当我运行该代码时 出现错误 Error in download file f
  • 将 sqldf 中的整数值转换为日期时间

    我正在使用 sqldf 库返回具有不同值的数据框 并且仅返回日期列的最大值 数据框看起来像这样 NAME val1 val2 DATE A 23 7228 0 5829 11 19 2014 8 17 A 23 7228 0 5829 11
  • AngularFire2 - 如何在页面刷新后保持登录状态

    我正在将 AngularFire2 用于应用程序 并且已经获得了与 Firebase 一起使用的注册 登录功能 但是 每次刷新页面时 登录状态都会重置并且不会持续存在 尽管我觉得我错过了一些非常小的东西 但我不太找到执行此操作的功能 我可以
  • 在 FPC 下的自动化对象中使用标识符或保留字

    实际上我在 Free Pascal 下使用 OLE 自动化 但某些对象具有使用保留字作为名称的属性 因此我无法编译代码 检查这个样本 MyObj OleVariant begin MyObj CrealeOleObject AObject
  • 使用 BottomNavigationBar 根据页面更改 AppBar 标题

    我试图根据用户所在的页面更改 AppBar 标题 页面由加载不同类 页面 的 BottomNavigationBar 控制 我设法改变这一点的唯一方法是为每个页面添加一个应用栏 我认为这不是继续下去的方法 class HomePage ex
  • 如何更改 Android 中滚动条的颜色?

    当前的问题是我们的主题继承自 Theme AppCompat 它似乎有一个白色滚动条 并且在白色背景上不可见 我知道我可以使用
  • 三星 S4 上的蓝牙崩溃

    我正在运行一个带有 BLE 扫描的应用程序 一段时间后在 Samsung S4 上或者如果周围有超过 10 个信标 我会看到此错误 07 18 11 51 57 169 W bt userial 7819 userial read thre
  • 如何在 django admin 中显示我的模型的所有字段?

    此代码显示如下对象 Home Object 1 Home Object 2 但我想在我的 django 管理页面中显示所有模型字段 我该怎么做 我是 django 的初学者 这是我的第一个项目 模型 py class Home models
  • R:如何使 data.table 只读而不复制它(例如用于数据验证)

    我进行数据整理 ETL 以将新数据加载到数据库中 并希望让用户基于我现有的实现自己的数据验证功能data table包含准备好的数据的对象 如何避免用户可以更改 修改 我的数据data table在验证函数中 有意或无意 而不进行复制 因为
  • 升级到1.2.162.1后:vkQueueWaitIdle == VK_ERROR_DEVICE_LOST

    我最近将光线追踪渲染器从 Vulkan SDK 版本 1 2 148 0 升级到 1 2 162 1 这是必要的 因为光线追踪扩展已经结束测试版 因此现在可以与非测试版一起使用 显卡驱动程序 我的 RTX 2070 SUPER 的版本为 4
  • 实体框架 - 从数据库更新模型... - 没有更新发生!

    我的数据库中有一个名为CompanyDetails 它有一个名为CharacterID varchar 255 我刚刚将其从NOT NULL列到一个NULL柱子 我在模型浏览器和 EDMX 文件查看器中运行了 从数据库更新模型 命令 这是它
  • C# 中的十六进制运算[重复]

    这个问题在这里已经有答案了 有关在 C 中解析 转换 操作十六进制值的任何提示吗 特别是我想将十进制整数转换为十六进制 然后输出为字符串 Int32 decValue 42 string hexValue decValue ToString
  • GAE/GWT:加载模块时出错:无法找到“com/androidstartup/serialization/KPadProject.gwt.xml”

    我正在使用 Eclipse 3 5 和 GAE SDK 1 3 7 GWT SDK 2 1 0 和 Restlet 2 0 3 当我运行我的应用程序时 控制台日志显示 Loading modules com androidstartup s
  • 如何在 Curses 中获取 Shift+X / Alt+X 键?

    I am currently using this code to grab key strokes but I am missing e g Shift Alt keys like Ctrl Shift S Ctrl Shift Alt
  • 为什么 JDBC 驱动程序必须放在 TOMCAT_HOME/lib 文件夹中?

    我有一个奇怪的问题 两个带有 Oracle JDBC 驱动程序的 Web 应用程序会相互冲突 我必须将 JDBC 驱动程序 JAR 放在 common 文件夹中TOMCAT HOME lib 这是什么原因呢 JDBC 驱动程序在 JVM 范
  • Android - 全透明状态栏与不透明导航栏

    我一直在寻找一种在状态栏完全透明 不是半透明 的情况下重新着色导航栏的方法 要使状态栏完全透明 需要将布局标志设置为 NO LIMITS 但这也会使导航栏失去其颜色 有什么办法可以实现这一点吗 如果您不需要状态栏文本变暗 则可以使用以下方法
  • Spring-MVC 与原始 Servlet:内存消耗、性能

    我正在读这个问题 Raw Servlet 与 Spring MVC https stackoverflow com questions 10775522 raw servlet vs spring mvc想知道与原始 servlet 相比
  • 声明可变大小的数组而不使用动态内存分配

    我想在函数中分配可变大小的二维数组而不使用 new 运算符 以便该二维数组可用于同一文件中的其他函数 void draw int i size i void assign char symbol char one size size Ass