如何获取 C 中动态创建的结构数组的长度?

2023-11-27

我目前正在尝试获取动态生成的数组的长度。它是一个结构数组:

typedef struct _my_data_ 
{
  unsigned int id;
  double latitude;
  double longitude;
  unsigned int content_len;
  char* name_dyn;
  char* descr_dyn;
} mydata;

我像这样初始化我的数组:

mydata* arr = (mydata*) malloc(sizeof(mydata));

然后使用调整它的大小realloc并开始用数据填充它。

然后我尝试使用描述的代码获取其大小here.

sizeof(arr) / sizeof(arr[0])

该操作返回0即使我的数组包含两个元素。

有人可以告诉我我做错了什么吗?


如果您需要知道动态分配数组的大小,则必须自己跟踪它。

The sizeof(arr) / sizeof(arr[0])该技术仅适用于编译时大小已知的数组,以及 C99 的数组变长数组.

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

如何获取 C 中动态创建的结构数组的长度? 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • Signalr 在生产服务器中总是陷入长轮询

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

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 如何在我的应用程序中使用 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
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • 使用 python 3.3 生成并保存 .eml 文件

    我正在尝试使用标准电子邮件库生成电子邮件并将其保存为 eml 文件 我一定不明白 email generator 是如何工作的 因为我不断收到错误 AttributeError str 对象没有属性 write from email imp
  • Python 中的多维/多变量动态时间扭曲 (DTW) 库/代码

    我正在研究时间序列数据 可用的数据是多变量的 因此 对于每个时间实例 都有三个可用的数据点 格式 X 是 Z 这样就会实时生成一个上述格式的时间序列数据 我试图在另一个已经存储的时间序列基础数据中找到这个实时生成的时间序列的良好匹配 其大小
  • 如何在循环数组时向数组添加项目? [复制]

    这个问题在这里已经有答案了 On a foreach循环 似乎 PHP 在开始时读取整个数组 因此如果您突然需要将新项目追加到数组中 循环将不会处理它们 a array 1 2 3 4 5 6 7 8 9 10 foreach a as b
  • 不希望原始 data.table 在传递给函数时被修改

    我是以下的粉丝data table 为满足当前和未来的所有需求编写可重用的函数 这是我在解决这个问题时遇到的挑战 使用 ggplot2 自动绘制所有 data table 列的最佳方法 我们将 data table 传递给函数进行绘图 然后
  • MongoDB分片,添加新节点时如何重新平衡?

    我正在尝试了解 MongoDB 和分片的概念 如果我们从 2 个节点开始 并根据姓氏对客户数据进行分区 其中 A 到 M 数据存储在节点 1 上 N 到 Z 数据存储在节点 2 上 当我们想要横向扩展并添加更多节点时会发生什么 我只是不明白
  • 为TaskTracker子进程配置内存的不同方式(Mapper和Reduce任务)

    设置和设置有什么区别mapred job map 内存 mb and mapred child java opts使用 Xmx 来控制Mapper 和Reduce 任务使用的最大内存 哪一个优先 Xmx指定分配的jvm的最大堆空间 这是为对
  • 用Java生成真值表

    我正在尝试打印一些真值表作为学校作业的一部分 如何在 Java 中生成动态大小真值表 So that printTruthTable 1 prints 0 1 printTruthTable 3 prints 0 0 0 0 0 1 0 1
  • 在 Hyperledger Fabric CA 中注册和注册证书有什么区别

    在 Hyperledger Fabric CA 中注册和注册证书之间到底有什么区别 我是密码学新手 我对 Fabric CA 的工作感到非常困惑 此外 通过 cryptogen 生成的证书与通过 Fabric CA 生成的证书不同 因此 根
  • 为什么自定义对象不等于 HashMap 的键?

    我在使用自己的类作为 HashMap 的键时遇到问题 public class ActorId private final int playerId private final int id ActorId int playerId int
  • 如何在我的应用程序中选择出口合规性?

    我正在提交审核 但不确定Export Compliance问题Is your app designed to use cryptography or does it contain or incorporate cryptography S
  • Fluent Validation,Asp.NET Core 中列表中每个项目的不同验证

    我一直在尝试找到一种方法来验证列表中的项目 每个项目都有不同的验证规则 我发现 Fluent 验证是一个很棒的库 但我似乎找不到一种方法来单独对每个项目进行验证 我从这个类似的线程中得到了一个模糊的想法 使用流畅验证验证 2 个列表 但我不
  • 根本无法让 phing 运行

    Mac OS X 10 7 当我运行时phing v我收到以下错误 Warning require once phing Project php failed to open stream No such file or directory
  • 如何在Windows 8中在线播放背景音乐

    在我的应用程序中 我使用 UI MediaElement 但是当我点击Windows键时 音乐就停止了 我尝试使用 MediaControl PlayPressed MediaControl PlayPressed MediaControl
  • 如何使用我的主题指定黑暗操作模式

    我知道有几个关于设置操作栏的上下文操作栏 ActionMode 部分样式的问题 但它们似乎并没有完全解决我所追求的问题 我使用带有浅色主题和深色操作栏的工具栏 工具栏看起来像我想要的 但操作模式看起来像常规的深色主题 我需要改变什么风格才能
  • 如何在 Android 应用程序中执行 SQLite 查询?

    我试图在我的 Android 数据库上使用此查询 但它不返回任何数据 我错过了什么吗 SQLiteDatabase db mDbHelper getReadableDatabase String select Select id title
  • 将两个不同的 servlet 映射到相同的 URL 模式

    我遇到了一个别人写的J2EE项目 当我来到web xml 有两个不同的 servlet 映射到同一 URL 模式 我想知道这种方法的目的 它究竟是如何运作的以及目的是什么 这是相关部分web xml
  • 延迟约束检查

    目前 在我们的数据库设计中 我们在两个实体之间存在循环引用 换句话说 我们在每个表中都有外键 它们引用彼此的主键 为了在这些表中插入记录 我们需要执行延迟约束检查 这在 SQL Server 2008 中可能吗 我知道 Oracle DDL
  • 在 Visual Studio C# 中创建具有动态选项卡数量的选项卡控件

    如何在 Visual Studio C 中创建具有动态选项卡数量的选项卡控件 我有一个带有表的数据库customers 我需要创建一个表单 显示带有客户姓氏首字母的选项卡 仅显示表中应有条目的首字母 每个选项卡都应包含一个具有相应客户的 D
  • 对于 API 级别 < 11,getCheckedItemCount() 的等效项是什么?

    我正在使用此方法来检查检查了列表上的多少个项目 但收到此错误 表明此方法不适用于任何早于 11 的 SDK API 级别 8 中的 this 相当于什么 接受的答案对我不起作用 总是返回 0 我不得不使用以下代码 public static
  • 如何获取 C 中动态创建的结构数组的长度?

    我目前正在尝试获取动态生成的数组的长度 它是一个结构数组 typedef struct my data unsigned int id double latitude double longitude unsigned int conten