初始化未知大小的二维数组

2023-12-03

我有一个二维字符数组,例如char aList[numStrings][maxLength]。理想情况下,在程序执行期间,我希望能够修改 aList 的内容,即添加、修改或删除条目。由于 aList 可能会发生更改,因此我不想在每次更改后都必须重新编译我的程序来修改 aList。所以我想在程序结束时将 aList 写入文本文件,然后在下一个程序运行开始时将其读回到 aList 中。

但是,我不知道在程序开始时 numStrings 的值是什么。 (我没有使用 C99,所以我不能使用 VLA,并从外部文件中获取先前字符串的计数。)当然,我可以将 numStrings 设置为人为的高值,但这很糟糕!

有没有办法在不知道 numStrings 值的情况下填充 aList?我认为不存在(我已经查看了相关问题),但是还有其他方法可以实现我所需要的吗?


如果您确实希望能够从网格中间删除项目(您的问题对此不清楚),那么您将需要某种多重链接结构。这些通常用于实现稀疏数组,因此您可能可以找到一个预制的。

我正在谈论这样的事情:

+---+  
| A |  
+-|\+  
  | \  
  |  \  
  |   \  
  |    \
  |     +----+----+----+  
  |     | C0 | C1 | C2 | ...  
  |     +--|-+----+--|-+  
  |        |         |
  |        |         |  
+-V--+  +--V-+       | +----+
| R0 |->|a0,0|-------+>|a0,3|--> ...
+----+  +--|-+    +--V-+----+
| R1 |-----+----->|a1,2|--> ...
+----+     |      +--|-+
 ...       V         |
          ...        V
                    ...  

其中 A 是对象的根节点,C 是列指针数组,R 是行指针数组,每个单元格都指向其行和列上的下一个邻居。所有未明确表示的单元格均假定具有某个默认值(通常为 NULL 或 0)。

这是一个简单的想法,但实现相当挑剔,很容易搞砸,所以如果可以的话,请使用经过调试的库。

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

初始化未知大小的二维数组 的相关文章

  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何针对 Nancy 中的 Active Directory 进行身份验证?

    这是一篇过时的文章 但是http msdn microsoft com en us library ff650308 aspx paght000026 step3 http msdn microsoft com en us library
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 使用 ShellExecute 打开不带“.exe”扩展名的可执行文件

    我想使用 ShellExecute 打开一个没有 exe 扩展名的可执行文件 我可以使用 CreateProcess 但我更喜欢使用 ShellExecute 有什么办法可以做到吗 我使用 C 和 win32api 函数 谢谢 You us
  • Firestore serverTimestamp() 未定义

    Problem 我设置了一个可调用的云函数 它使用 Admin SDK node js 写入 Firestore const admin require firebase admin const functions require fire
  • 在集群环境中使用 Quartz

    我希望在我的应用程序中使用quartz调度程序 因为我有一个集群环境 并且希望保证每小时只运行一个作业实例 我的问题是 我是否必须使用 JDBC 作业存储或某种作业数据的 外部 存储来保证集群中的实例在任何给定时间仅运行一次作业 或者 Qu
  • 比较不同的“使用参数启动 Cocoa 应用程序”方法

    我发现至少有三种方法可以从应用程序启动 Mac OS X 上的应用程序 NSTask 我可以给出参数 但似乎它不是针对 Cocoa 应用程序 而是针对 UNIX 风格的二进制文件 系统函数 system 与 C 的方式相同 我不知道为什么
  • Python 线程和 PySimpleGUI

    根据 MikeyB 的解决方案进行了修改 感谢 Mikey 指出了一个简单的解决方案 我觉得有时候解决方案需要考虑太多 而一个简单的开销解决方案就可以解决问题 我添加了一个小函数 该函数循环遍历我想要监视的目录 并将变量设置为 True 或
  • ListView onItemClick 从数据库获取行?

    我对 Android 开发相当陌生 我有一个自定义 ListView 其中填充了数据库表中的数据 ListView 项目由类别 日期 标题和金额组成 private class lvIncomeListener implements Ada
  • dyld:未加载库:@rpath/libswiftCore.dylib

    我正在尝试在我的 iPhone 4s 上运行 Swift 应用程序 在模拟器上运行得很好 我朋友在他的iPhone 4s上也能成功运行 我有 iOS 8 和 Xcode 6 的正式版本 我努力了 重新启动 Xcode iPhone 电脑 清
  • 如何为 Amazon EC2 创建 IAM 角色?

    我正在探索 IAM 角色 我想知道如何代表 EC2 上的用户访问角色 非常感谢任何帮助 Thanks 在使用以下命令启动 EC2 实例后 您通常不需要执行任何特殊操作 Amazon EC2 的 IAM 角色 我从你重复的问题中发现 你已经这
  • SyntaxError:NextJS 身份验证集成中出现意外的令牌“导出”

    我一直在使用 Next js 使用 next auth 和 Prisma 开发一个网站 一切都工作正常 但是今天代码不再工作了 我刚刚从以下任何页面收到此错误 nextauth js Server Error SyntaxError Une
  • 如何从地理编码地址查找 lat lng?

    我正在尝试创建一个 Gmap 来允许人们对地址进行地理编码并找到相应的经纬度 我希望在我已经创建的表单中看到这一点 另外 我希望能够在拖动标记时更改坐标
  • 如何从不同线程绘制opengl图形?

    我想制作一个 opengl 应用程序来显示一些 3d 图形和命令行 我想让它们分开线程 因为它们都是繁重的进程 我认为我可以用 2 个不同的视口来解决这个问题 但我想知道如何处理 opengl 中的线程 根据我读到的内容 Opengl 是异
  • 撤消 TFS 取消搁置

    我使用的是 Visual Studio 2015 TFS 的版本是 2012 版本 11 0 51106 1 有没有办法撤消取消搁置 其他人的用户搁置集 以达到以前取消搁置命令的情况 不 没有这个命令 Unshelving这是将搁架组恢复到
  • Android 轮播图库

    我怎样才能轮播图片库 它永远不会结束 在最后一张图片之后和第一张最后一张图片之前 我通过创建自己的列表适配器 继承自 基础适配器 我以 getCount 方法的方式编写了自己的列表适配器 返回一个 HUUUUGE 数字 如果选择 x 项 则
  • 没有 CocoaPods 的 Google 登录

    我正在尝试将 iOS 版 Google 登录与此处找到的文档集成 https developers google com identity sign in ios start integrating 在不使用 Cocoapods 的情况下如
  • 从 List 到数组 T[] 的转换

    有没有一种简单的方法来转换强类型List
  • PDFBox LayerUtility - 将图层导入现有 PDF

    我正在使用 pdfbox 来操作 PDF 内容 我有一个很大的 PDF 文件 比如 500 页 我还有其他一些仅包含单个图像的单页 PDF 文件 每个文件最大约为 8 15kb 我需要做的是将这些单页 pdf 导入到大 PDF 文件的某些页
  • 为什么 SQL Server 2014 数据库项目的 SqlPublish 目标失败?

    我的计算机具有当前 2014 年 3 月 版本的 SSDT Visual Studio 2012 Professional 和 SQL Server 2014 Developer 我有一个 SQL Server 项目 我们称之为MyProj
  • 克隆对象并更改值也会改变原始对象

    我想知道为什么会发生这种情况 我有一个对象存储在 var myObj 中 var myObj JSON parse fs readFileSync json data json utf8 然后我通过以下方式从原始对象中获取克隆 var mo
  • 如何使div的百分比宽度相对于父div而不是视口

    这是我正在使用的 HTML div style min width 100 min height 1000px background 3e3e3e div style width 50 height 1 div style backgrou
  • 初始化未知大小的二维数组

    我有一个二维字符数组 例如char aList numStrings maxLength 理想情况下 在程序执行期间 我希望能够修改 aList 的内容 即添加 修改或删除条目 由于 aList 可能会发生更改 因此我不想在每次更改后都必须