如何计算 char 数组中的元素数量?

2024-01-01

我试图计算数组中的元素数量,并被告知该行

int r = sizeof(array) / sizeof(array[0]) 

会给我数组中元素的数量。我发现该方法确实有效,至少对于 int 数组而言。然而,当我尝试这段代码时,事情就崩溃了。

#include <iostream>
#include <Windows.h>
using namespace std;

int main() {
    char binaryPath[MAX_PATH];
    GetModuleFileName(NULL, binaryPath, MAX_PATH);
    cout << "binaryPath: " << binaryPath << endl;
    cout << "sizeof(binaryPath): " << sizeof(binaryPath) << endl;
    cout << "sizeof(binaryPath[0]: " << sizeof(binaryPath[0]) << endl;

    return 0;
}

当这个程序运行时,binaryPath的值为

C:\Users\Anish\workspace\CppSync\Debug\CppSync.exe

sizeof 返回的大小似乎为 260(以字节为单位?位?idk,有人也可以解释一下吗?)。该行

sizeof(binaryPath[0]);

给出值 1。

显然,260 除以 1 的结果是 260,这不是数组中元素的数量(根据我的统计,它是 42 左右)。有人可以解释我做错了什么吗?

我有一种偷偷的怀疑,这实际上并不是我所认为的数组(我来自 Java 和 python),但我不确定,所以我问你们。

Thanks!


260 is MAX_PATH,你得到的是因为sizeof返回整个数组的大小 - 不仅仅是数组内字符串的大小。

要获得您正在寻找的行为,请使用strlen反而:

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

如何计算 char 数组中的元素数量? 的相关文章

  • 如何从 Windows 批处理文件中的 ECHO 字符串中去除引号?

    我正在创建一个 Windows 批处理文件 但我必须 ECHO 一个大型复杂字符串 因此我必须在两端加上双引号 问题是引号也被回显到我正在写入的文件中 如何 ECHO 这样的字符串并去掉引号 UPDATE 我花了两天的时间研究这个问题 终于
  • .NET 进程分配的内存何时释放回 Windows

    设置 NET 在启动时以及在收集后尝试满足分配请求时 分段为每一代的堆 0 1 2 LOH 分配内存 以获得连续的内存块 为每个堆分配的内存可能会随着应用程序 预热 而趋于平稳 但第 2 代和大型对象堆可能除外 在垃圾收集期间 每个堆 0
  • 混合 VS2012 平台工具集

    我们正在从 VS2005 切换到 VS2012 update 2 我们正在构建大量 主要是控制台 本机 C 无 MFC ATL 可执行文件 它们使用几个常见的静态链接库 这些可执行文件主要在 Win7 计算机上运行 但有些也部署在较旧的 X
  • 是否有更好(更简单)的方法来获取特定域 SID?

    我被指派修改 WinForms 应用程序 主要检查登录用户是否属于特定域 这是我到目前为止所想出的 byte domainSid var directoryContext new DirectoryContext DirectoryCont
  • 如何使用 ASP.NET MVC 4.0 DonutOutputCache VaryByCustom 使缓存失效

    我正在为我的 ASP NET 应用程序使用 DevTrends MvcDonutCaching 包 它工作得很好 我目前遇到的一个问题是使我为子操作设置的 VaryByCustom 缓存无效 这是我用于 VaryByCustom 设置的一些
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • 如何检查是否发生溢出? [复制]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • 当应用程序未聚焦时监听按键

    我有一个应用程序 C 4 0 WPF 它是隐藏的 可以通过单击系统托盘图标或我创建的其他框架 停靠在左侧和最上面的小框架 来显示 My customer wants to add a new way to display the appli
  • 性能方面插值(直接插入字符串)VS串联[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 C# 编译的正则表达式比等效的字符串方法更快?

    每次我必须对字符串执行简单的包含或替换操作 其中我正在搜索的术语是固定值 时 我发现如果我获取示例输入并对其进行一些分析 则使用编译的正则表达式是几乎 总是比使用 String 类中的等效方法更快 我尝试过比较多种方法 hs是要搜索的 干草
  • 在python中将列表转换为字符串

    我对 python 语言相当陌生 我一直在寻找这个问题的答案 我需要一个如下所示的列表 Kevin went to his computer He sat down He fell asleep 转换为如下字符串 Kevin went to
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • 第一个随机数始终小于其余随机数

    我碰巧注意到 在 C 中 使用 std rand 方法调用的第一个随机数大多数时候都明显小于第二个随机数 关于 Qt 实现 第一个几乎总是小几个数量级 qsrand QTime currentTime msec qDebug lt lt q
  • STL 向量、迭代器和插入 (C++)

    我有一个将向量的迭代器传递到的方法 在这个方法中 我想向向量中添加一些元素 但我不确定当只有迭代器时这是否可行 void GUIComponentText AddAttributes vector
  • 为 C++ 类播种 rand()

    我正在开发一个 C 类 它使用rand 在构造函数中 我真的希望这个班级在几乎所有方面都能照顾好自己 但我不知道在哪里播种rand 如果我播种rand 在构造函数中 每次构造我的对象类型的新实例时都会对其进行播种 因此 如果我按顺序创建 3
  • TypeScript 中 C# 类虚拟成员的等效项

    因此 在 C 中 当我创建模型类和延迟加载内容时 我会执行以下操作 public int User ID get set public int Dept ID get set 然后在我的班级稍远一点的地方 我像这样弹出我的虚拟 public
  • 访问 Visual Studio 扩展中的当前代码窗格

    我正在编写一个 Visual Studio 2010 扩展 在代码视图中带有右键单击菜单 我希望能够从菜单项事件处理程序检查当前代码 但无法在对象模型中找到执行此操作的位置 如何在 Visual Studio 扩展中访问当前窗口中的代码 E
  • 可选参数代码在 .NET 3.5 中编译。为什么?

    这段代码在 VS 2010 的框架 3 5 项目中编译正常 我三次检查过 public LoggingClient string uri net msmq localhost logging 为什么 我在 C 4 规范中没有看到任何内容 文
  • 为什么没有参数的函数(与实际函数定义相比)可以编译?

    我刚刚看到某人的 C 代码 我很困惑为什么要编译它 有两点我不明白 The 函数原型与实际函数定义相比没有参数 中的参数函数定义没有类型 include
  • 使用 Javascript 删除字符串的最后一个字符

    我有一个DIV与一些字符 如何在每次单击时删除文本中的最后一个字符DIV itself 删除第一个字符 div on click function this text function index text return text repl

随机推荐

  • Antlrworks - 无关输入

    我是这方面的新手 因此我需要你的帮助 我正在尝试解析 Wikipedia Dump 我的第一步是将它们定义的每个规则映射到 ANTLR 不幸的是我遇到了第一个障碍 第 1 行 8 外部输入 需要 我不明白发生了什么事 请帮助我 My cod
  • xterm 退出后在终端中保留 less 页面

    我经常使用 less 查看文件 并且想记住我刚刚在文件中看到的内容 但是 当我通过按 q 键退出 less 时 我的 xterm 窗口会删除显示文件的 less 页面 而只显示我的命令提示符 当我退出时 如何在终端上保留较少的输出 less
  • 手动 DAL 和 BLL 与 ORM

    哪种方法更好 1 使用一个第三方ORM系统或2 手动编写DAL和BLL代码使用数据库 1 在我们的一个项目中 我们决定使用 DevExpress XPO ORM 系统 但我们遇到了很多小问题 浪费了我们很多时间 AMD仍然时不时地遇到来自这
  • 阻止 ConstraintLayout 中的视图重叠

    我正在尝试使用 ConstraintLayout 构建一个具有三个视图的简单布局 当左视图中的文本很长时 我想看到这个 但我得到的是这样的 左视图向右增长太多并隐藏了中间视图 这是我的代码
  • 通过货物安装板条箱时出错:指定的包没有二进制文件

    我正在尝试使用 Cargo 在我的系统 Arch Linux 上安装 Rust 箱子 我可以搜索板条箱并找到我需要的东西 例如 cargo search curl head n3 Updating registry https github
  • 在公共功能分支中使用 git rebase

    您可以在网上看到人们建议不要使用git rebase在公共分支中 但如果您总是对功能分支进行变基 我看不出问题是什么 我的团队总是使用分支来实现功能 哇 我们习惯于在本地拥有它 所以变基不是问题 但有时我们想向其他开发人员展示部分完成的功能
  • 在nodeJs中,有没有一种方法可以在不使用数组大小​​的情况下循环数组?

    假设我有 myArray item1 item2 I tried for var item in myArray console log item 它打印 0 1 我所希望的是拥有 项目1 项目2 是否有任何其他语法可以在不使用的情况下工作
  • 如何在php中获取选定表项的id

    我应该得到id从表中提出请求 但我就是这样做的 我的桌子 id AI 名称 Varchar authir varchar 类别 varchar 我想如果有任何解决方案可以解决这个问题 谢谢我的问题出现在以下几行中 Print td a hr
  • Java Collection 的多个索引 - 最基本的解决方案?

    我正在寻找在 Java 集合上创建多个索引的最基本的解决方案 所需功能 当删除某个值时 与该值关联的所有索引条目都必须删除 索引查找必须比线性搜索更快 至少与 TreeMap 一样快 附带条件 不依赖于大型 如 Lucene 库 没有不常见
  • JSDOM:无法解析 CSS 样式表

    使用以下命令 node modules babel core register js node modules jsdom global register js spec jsx 我正在运行以下测试文件 use strict import
  • 导入后完整日历样式不正确

    我正在尝试在我的项目中使用 React Full Calendar 尽管日历以正确的方式呈现 但样式有点不对劲 目前的情况如下 正如您所看到的 在标题工具栏中 月份单词没有在中间对齐 其他单词和图标也是如此 也许 按钮本身的尺寸在高度上看起
  • 如何使用/安装 python 2to3?

    由此https docs python org 3 4 library 2to3 html https docs python org 3 4 library 2to3 html它说 2to3 应该作为脚本与 python 解释器一起安装
  • 如何告诉 RandomizedSearchCV 选择分布或 None 值?

    假设我们正在努力寻找最好的max depth的参数RandomForestClassifier http scikit learn org stable modules generated sklearn ensemble RandomFo
  • ddply 按 R 中的组求和

    我有一个示例数据框 数据 如下所示 X Y Month Year income 2281205 228120 3 2011 1000 2281212 228121 9 2010 1100 2281213 228121 12 2010 900
  • std::setw 和 unicode 字符

    我的问题如以下最小示例所示 include
  • 如何向此 CSS“切换器”“切换开关”添加文本

    这是实际的 Switcher 生成器 https proto io freebies onoff https proto io freebies onoff 我不清楚如何向事件添加文本 因此 当开关处于默认状态时 会显示某些文本 反之亦然
  • Mathematica 绘图中多个函数的检测和样式设置

    This https stackoverflow com questions 5597566 这个问题让我开始思考 Mathematica 如何检测正在绘制的多个函数 我发现我实在是看不懂这个流程 考虑 Plot 1 Sequence 2
  • 如何为二维数组的 qsort 编写比较器函数?

    我有一个 n 2 大小的数组 我想根据第二列的值使用 qsort 对它们进行排序 include
  • IEquatable,如何正确实施[重复]

    这个问题在这里已经有答案了 我正在使用 net 2 0 和 c 并且我已经在我的类中实现了 IEquatible 接口 如下所示 public MyClass IEquatable
  • 如何计算 char 数组中的元素数量?

    我试图计算数组中的元素数量 并被告知该行 int r sizeof array sizeof array 0 会给我数组中元素的数量 我发现该方法确实有效 至少对于 int 数组而言 然而 当我尝试这段代码时 事情就崩溃了 include