用值初始化数组(指针)[重复]

2024-04-13

所以,在 C 语言中,这完全有效:

int myArray[] = {1, 2, 3};

为什么以下内容在访问元素时会出现运行时错误?

int * myArray2 = {1, 2, 3};
myArray2[0];

when myArray2[0]基本上意味着*myArray2,这也不起作用?


我认为根本的区别在于声明数组隐式分配内存,而声明指针则不会。

int myArray[3];声明一个数组并为 3 分配足够的内存int values.

int myArray[] = {1,2,3};是一个小语法糖,它让数组的大小由初始化值确定。就内存分配而言,最终结果与前面的示例相同。

int *myArray;声明一个指向int价值。它不分配任何内存来存储int value.

int *myArray = {1,2,3};据我所知,不支持语法。我希望你会因此得到一个编译器错误。 (但我已经很多年没有完成实际的 C 编码了。)即使编译器允许它通过,分配也会失败,因为没有分配内存来存储值。

虽然您可以使用数组语法引用指针变量,但这仅在您已分配内存并将其地址分配给指针时才有效。

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

用值初始化数组(指针)[重复] 的相关文章

  • 运行WPF应用程序时出错

    该应用程序在制作它的计算机上运行良好 但是当我将其复制到另一台相同的操作系统时 它崩溃并显示以下错误 Problem signature Problem Event Name CLR20r3 Problem Signature 01 vpn
  • 从 gdb 设置 std::string 变量值?

    是否有可能 当调试器在断点处停止时 修改 std string 变量的值 而不需要采取诸如调整当前缓冲区的内存映像之类的黑客手段 例如类似于 set var mystring hello world 试试这个 经过测试并且对我有用 call
  • libc++ 中短字符串优化的机制是什么?

    这个答案 https stackoverflow com a 10319672 1805388给出了短字符串优化 SSO 的高级概述 但是 我想更详细地了解它在实践中是如何工作的 特别是在 libc 实现中 字符串必须有多短才能符合 SSO
  • 如何在Windows窗体中平滑地重新绘制Panel

    如何将面板重漆成光滑的 我正在使用一个使面板无效的计时器 panel1 Invalidate 每 300 毫秒一次 然后panel1 Paint如果我向该面板添加图像 问题是它看起来像是在跳跃 我需要尽可能快地移动其上的一张图像 这是截屏问
  • 如何确定一个值是否在某个范围内?

    我对 C 语言比较陌生 不幸的是我必须在学校做这件事 而且我在最简单的练习中遇到了问题 这里我必须检查一个数字是否在某个区间内 例如4到6之间 我是这样制作的 include
  • 如何重写 C++ 标准库类函数?

    如何重写 C 标准库类函数 在我的应用程序中 我使用ofstream代码中许多不同位置的对象 现在我想在Linux Ubuntu中以不同的权限模式打开文件 但open的函数ofstream没有参数来指定它创建的文件的权限模式 现在我想覆盖o
  • 实体框架 6 - 使用我的 getHashCode()

    这篇文章需要了解一定的背景知识 请耐心等待 我们有一个使用 EF 的 n 层 WPF 应用程序 我们通过 dbContext 将数据从数据库加载到 POCO 类中 dbContext 被销毁 然后用户可以编辑数据 我们使用 Julie Le
  • C++ 将 HashMap 对象返回给 Java

    我有一个 JAVA 调用的 JNI 函数 需要构建并返回一个 HashMap 映射的键是 String 相应的值是 boolean 或 Boolean 任何一个都可以 只要它有效 使用我当前的代码 如下 该字符串已成功添加到返回的映射中 并
  • 强名称验证失败

    两台机器 均带有 NET 3 5 和 VS 2008 VC SP1 可再发行组件 单个 exe 使用两个签名的 DLL 一个在 C CLI 中 一个在 C 中 该exe在一台机器上加载并运行良好 另一方面 我在 C 可执行文件上收到 强名称
  • Json.NET 在返回 json 序列化字符串时添加反斜杠

    我正在尝试使用 Json NET 将列表序列化为 json 字符串 但返回字符串中包含反斜杠 这又导致 json 解析失败 var x from d in entities Books ToList select new ID d ID B
  • 类型或命名空间名称“X”在命名空间“Y”中不存在 - 在 VS 生成的代码中

    这是我遇到过的最奇怪的错误 这个 MVC Web 项目直到今天都运行良好 几周以来还没有任何人对其进行处理 尽管没有任何改变 但现在简单地运行它会导致 命名空间 CMSModels ViewModels 中不存在类型或命名空间名称 Colo
  • 如何使用现代 GCC 抑制“-fpermissive”错误?

    我正在尝试编译一些不合格的代码C 17 https en wikipedia org wiki C 2B 2B17 但我遇到了以下问题 pragma GCC diagnostic push pragma GCC diagnostic ign
  • C# 在不使用反射的情况下运行时出现“找不到方法”异常

    我在获得上述异常时遇到问题 我有一个相对简单的结构 分为两个 dll 第一个包含 IEntityService IEntity 和基本实现 第二个包含实际的实现和接口 因此 有一个 IMachine 服务实现了 IEntityService
  • 如何使用 OpenCV 从图像中获取调色板 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想提取图像的调色板 类似于此 来自 我需要它来提取特定的颜色 如黄色 绿色和棕色 并显示该颜色覆盖的区域的百分比 另外 我可以添加更
  • 处理后退导航 Windows 10 (UWP)

    在我的 Xaml 页面中 我有一个框架 我正在尝试使用 backButton 事件来在frame 内导航 所以我尝试使用这段代码 public MainPage this InitializeComponent if Windows Fou
  • 显式移动构造函数

    尝试编译以下代码 struct Foo explicit Foo void explicit Foo Foo rhs Foo bar void return Foo 出现以下错误 调用 Foo 的隐式删除复制构造函数 嗯 很明显复制者被隐式
  • 创建 ip 网络数据包 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须使用任何协议手动创建自己的网络
  • 我可以向函数添加属性以防止重入吗?

    目前 我有一些如下所示的功能 private bool inFunction1 false public void function1 if inFunction1 return inFunction1 true do stuff whic
  • C# 中 PHP 的快速解析

    我需要用 C 解析 PHP 文件 我们本质上要求另一个国家的一些开发人员上传 PHP 文件 上传后我们需要检查 php 文件并获取所有方法和类 函数等的列表 我想过使用正则表达式 但我无法确定一个函数是否属于一个类等 所以我想知道是否已经有
  • 在 C# 中将字符串转换为等效的字节十六进制

    我有一个传入的字符串68016101061B4A60193390662046804020422044204000420040402060226024676DB16我想转换成0x68 0x01 0x61 0x01 0x06 0x1B 0x4A

随机推荐