C malloc 只为 int * 分配了 8 个字节 [重复]

2023-12-06

我正在尝试创建一个指向6元素int在函数中稍后返回它,因此为此目的我使用malloc,但它的表现似乎并不符合我的预期。这是代码:

int j = 0;
for (;j < 5; j++) {
    int * intBig = malloc(j * sizeof(int));
    printf("sizeof intBig - %ld\n", sizeof(intBig));
}

打印相同的数字8字节为sizeof(intBig)在每次迭代时。而我期待一系列4, 8, 12, 16。在这种情况下我缺少什么?


这是因为您要打印的大小int *。这样的指针总是具有相同的大小。sizeof是一个编译器构造。它无法知道仅在运行时发生的事情,例如动态内存分配。会不会是这样的

int intBig[100];

然后你会得到数组的大小(以字节为单位),因为编译器知道它有多大。但结果是sizeof运算符始终是一个编译时常量,因此您所拥有的不可能产生其他任何结果。

此外,你那里有内存泄漏,因为你不是free- 再次唤起你的记忆。


1 可变长度数组 (VLA) 是一个例外,但此处未使用它们。

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

C malloc 只为 int * 分配了 8 个字节 [重复] 的相关文章

随机推荐

  • 如何使用python-docx替换Word文档中的文本并保存

    同一页面中提到的 oodocx 模块将用户引导至似乎不存在的 examples 文件夹 我已经阅读了 python docx 0 7 2 的文档 以及我在 Stackoverflow 中可以找到的有关该主题的所有内容 所以请相信我已经完成了
  • HttpConnection 无法在真实设备中工作 -Blackberry

    这是我的代码 public String Serverconnection String url String line if DeviceInfo isSimulator url url deviceSide true try HttpC
  • 通过 Net::HTTP 下载 zip 文件

    我正在尝试从下载最新的 zipWordPress org使用 Net HTTP 这是我到目前为止所得到的 Net HTTP start wordpress org http resp http get latest zip open a z
  • 登录-AzureRmAccount 和选择-AzureRmSubscription

    我已经在 Windows Server 2012 R2 上安装了 AzureRm 和 Azure 模块 我可以从此模块运行其他 cmdlet 例如 AddAzureRmAccount Get AzureRmSubscription 但 Lo
  • Android,沿路径移动位图?

    我想知道是否可以从路径中选择坐标来随着时间的推移绘制位图 例如 我有一张太阳的图像 我想随着时间的推移沿着弧形路径移动它 有没有什么方法可以定义这样的路径 然后沿着它移动 这样我就不必进行数学计算 Thanks 是的 可以沿着路径移动图像
  • 如何在 MySQL 中设置日语模式排序规则

    我在整理方面遇到问题 我想设置排序规则以支持日语 例如 当 table firstname 包含 时 包含 的查询应返回该记录 提前致谢 这就像 大写 和 小写 对吗 mysql gt SELECT COLLATE utf8 general
  • TestNG DataProvider 从 testng.xml 配置文件读取测试数据?

    TestNG DataProvider 是否可以从 testng xml 配置文件中读取测试数据 或者由于某种原因这是不现实的 我希望能够在套件级别和类级别从该文件读取测试数据 那么 给定一个像这样的testing xml 文件 我不确定它
  • Xamarin.Forms:UWP 应用的本地化

    如果我在 UWP 设备上运行我的应用程序 我会在Output window MakePRI 警告 0xdef00522 找到语言 en de 的资源 但未找到默认语言的资源 de DE en US 更改默认语言或使用默认语言限定资源 htt
  • ng-grid 将多个项目插入单元格

    如何将多个值插入到 1 个单元格 例如将电子邮件 电话和地址插入到 1 个单元格 我需要在单元格中减少行数和更多信息 我尝试过这样的方式 angular forEach scope genData function row row getN
  • Axis2 Web 服务客户端生成 - 无需修改客户端的类型

    是否可以使用 Axis2 和 Eclipse 生成 Web 服务客户端并让它使用包中已有的 java 类型 而不是创建它自己的类型 当然 原因是如果我已经创建了类型 A 并且它创建了自己的类型 A 我不能只将类型 A 的变量分配给类型 B
  • __has_cpp_attribute 不是“类似函数”的宏?

    我正在尝试介绍 deprecated 属性到我的代码库中 然而 并不是所有我需要支持的编译器都支持这种语法 标准化之前不同编译器使用的各种方法在属性标准化提案 N2761 因此 我尝试使用此属性有条件地编译 has cpp attribut
  • Python NameError:名称未定义(与默认输入参数类型有关)

    我对我打电话的事实有疑问len myByteArray 在我声明的函数的输入参数中 我希望它成为默认参数 但 Python 似乎不喜欢它 myByteArray属于类型bytearray See 关于 bytearray 的文档在这里 我正
  • 将闭包存储在 HashMap 中

    为了学习 Rust 语言 我使用了一个旧的 C 库并尝试将其转换为 Rust 它使用了很多 C 11 闭包 我在翻译这些概念时遇到了一些困难 在 C 中我有这样的事情 library h struct Event just some dat
  • 使用 vlc 的 Python QT 应用程序不显示全屏

    我正在开发一个应用程序 其中显示多个 vlc 流 rtsp 通过双击其中一个流 该流应该全屏显示 该应用程序是使用 pyqt5 和 vlc qt 的 python 3 7 代码如下 import sys import vlc from Py
  • 从 Visual Studio 2015 中完全删除 ApplicationInsights

    我环顾四周 并没有找到一个好的答案 所以我发布这个问题 希望它可以成为其他希望完全删除 Application Insights 的人的一种 参考 我尝试的第一个显而易见的事情是从 工具和扩展 中卸载该工具 但不幸的是 这让事情变得更糟 现
  • 按价格列对表格进行排序

    这是账单清单 Service Price S1 13 CHF S2 Free S3 Free S4 40 CHF 我想使用 jQuery 或纯 JavaScript 按价格对其进行排序 不是服务器端 I tried jQuery 表排序器
  • 从浏览器中检测 USB 设备是否已插入 Javascript

    是否有基于 Javascript 的机制 我可以通过浏览器检测用户是否插入了特定的 USB 设备 出于安全原因 Web 浏览器中的 JavaScript 仅提供受限制的访问计算机资源 这是不可能将文件存储在任意文件夹中 启动应用程序或与US
  • mod_rewrite php mysql

    我对 mod rewrite 非常陌生 我一直在试图解决这个问题 但真的很困难 p 这是我的问题 我有一个页面http example com user s 81 s 81 正在从数据库中的用户 ID 读取 我想要的是一个链接 http e
  • Request.QueryString 为空时出错

    有时用户会错误地重定向到 Process ViewImages PAGEID 发生这种情况时 他们会收到以下错误 Microsoft VBScript 运行时错误 800a000d 类型不匹配 字符串 FLPM cp images cs a
  • C malloc 只为 int * 分配了 8 个字节 [重复]

    这个问题在这里已经有答案了 我正在尝试创建一个指向6元素int在函数中稍后返回它 因此为此目的我使用malloc 但它的表现似乎并不符合我的预期 这是代码 int j 0 for j lt 5 j int intBig malloc j s