arrays - 内存中表示的未定义 vector 元素是什么?

标签 arrays c assembly initialization

我目前正在学习 C,我有一个问题,我必须猜测内存中有哪些值。 当我说,例如 long var1[1243] = {10, 1, 0, -1, -10}并定义这个 vector ,它的前 5 个元素已经定义,但是代表剩余 1238 个元素的分配字节,它们在内存中设置了什么?更具体地说,它们是 0 吗?会说,在汇编中,在定义它们之后,.zero <number of remaining bytes in vector>对吗?

最佳答案

通过至少初始化一些元素 {10} C 将把数组中的所有剩余元素初始化为全局变量。数字零或空指针取决于类型,在结构数组的情况下,递归地为结构的所有成员。

在 C++ 中,空的初始化程序也可以 long var1[1243] = {},但在 C 中不允许这样做。

关于arrays - 内存中表示的未定义 vector 元素是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253661/

相关文章:

PHP、MYSQL、FOREACH 检查值是否都相同

c - struct dirent **foo 到函数

c++ - 使用 Code Cave 注入(inject) 64 位 DLL

c - 仅对数组中的偶数求和

javascript - 一个基本的 Javascript Todo 应用程序在 For 循环中表现得很奇怪

C 程序的 Case Switch 无法正确运行

c - Windows 中 CMake 的默认生成器是什么?

c++ - Nasm,C++,传递类对象

c++ - g++ - 无优化 - 在转到后跳过 asm 代码

java - 是否可以从 List<ByteBuffer> 创建 ByteBuffer?