cost 103 ms
二维数组是否实现为连续的一维数组? - Is a two-dimensional array implemented as a continuous one-dimensional array?

我对二维数组的 memory 布局有疑问。 当我们定义一个,就像int a[3][4] ,分配给这个数组的memory是连续的吗? 或者换句话说,二维数组是否实现为连续的一维数组? 如果答案是肯定的,那么访问a[0][6]是否等同于访问a[1][2] ? 我写了下面的 C 程序。 我发现 outp ...

为什么不向结构添加 function 使其实例更大? - Why doesn't adding a function to a struct make its instances larger?

obj的大小为 8 个字节。 如果我添加新属性,大小将会改变。 没关系。 我想知道编译器如何处理函数的 memory。 无论结构中是否有func,大小都是一样的。 但是 func 也是信息,我想它也应该采用 memory (也许我错了)。 那么这个过程是如何进行的呢? 如果您推荐我的主题名称以便 ...

Rust 如何在 memory 中存储枚举? - How does Rust store enums in memory?

我是 Rust 的新手,我一直试图了解它如何将枚举存储在 memory 中。 我已经知道 Rust 实现了标记联合来表示枚举。 据我了解,这是我在 memory 中应该看到的: 一个增量标签(1 个字节) 与最大字段一样多的字节用于 alignment 目的的一些填充字节(如果需要) 考虑以下代码 ...

在 C 程序中,函数框架的返回地址是否指向 .text 部分? - In a C program, does return address of a function frame point to the .text section?

我正在尝试做一个小的 ctf,并且我正在尝试溢出返回地址以注入 shellcode。 我希望返回地址非常低,因为它应该指向指令(因此我假设 .text 段)。 使用格式字符串漏洞我探索了内存并发现了 1f7ffd 范围内的一些值。 我认为它可能是返回地址,据我所知,它之前的地址应该是从前一个函数帧 ...

.bss 段如何为 C 程序分配和释放内存? - how does .bss segment allocates and deallocates the memory for the C program?

我试图了解 .bss 内存分配和释放背后的逻辑 我试图理解相同的案例很少。 我得出的结论是,如果我在代码的全局范围内声明任何变量,它会以 8 个字节的块递增,因为我的链接器脚本具有 8 个字节的对齐方式 但是当我在同一范围内定义变量时,它正在从 .bss 释放内存 但是我不明白释放背后的逻辑计算到 ...

如何压缩数据 - How to compress data

我正在尝试压缩数据以提高空间复杂度,但我不确定我是否错误地压缩了数据或错误地测量了大小。 我在操场上尝试了以下内容。import Foundation import Compression // Example data struct MyData: Encodable { let pro ...

重新分配/压缩 memory 时如何更新指针? - How to update pointers when memory is reallocated/compacted?

所以我正在研究一种自定义编程语言,并且在 go 方面还有很长的路要走。 我目前正在考虑的一件事是 memory 管理。 我目前正在考虑类似“slab allocation”之类的东西,它有每个slab 类型采用一种结构的slab(我认为slab 分配器术语也称为“缓存”)。 所以一个slab可能是 ...

numpy 是否有可能在不更改 memory 顺序和迭代器的情况下交换矩阵的 x,y? - Is there possibilty in numpy to swap x,y of matrix without changing memory order and iterators?

我正在尝试从fortran和c++ 的世界切换到 numpy 。 主要是我正在处理巨大的图像,其中坐标方向是x:从左到右,y:自上而下,像素存储在行中,常见于图像格式。 Numpy 说它还按行存储矩阵。 就好的而言,它与 fortran/c++ 保存图像相同。 但是,请参阅以下示例,从黑色到白色 ...

如何在 numpy 中可靠地创建多维数组及其一维视图,使 memory 布局连续? - How to relaibly create a multi-dimensional array and a one-dimensional view of it in numpy, so that the memory layout be contiguous?

根据numpy.ravel的文档, 返回一个连续的展平数组。 返回一个包含输入元素的一维数组。 仅在需要时制作副本。 为了索引的方便和效率,我想要一个二维数组的一维视图。 我正在使用ravel来创建视图,到目前为止一切都很好。 但是,我不清楚“仅在需要时才制作副本”是什么意思。 如果某天在执行我的 ...

是否可以在运行时在 D 中创建一个连续的多维数组? - Is it possible to create a contiguous multidimensional array at runtime in D?

我想在运行时创建一个矩形多维数组,以便整个数组存储在 memory 的连续块中。 数组在初始创建后不需要调整大小。 实际上,我想在运行时创建一个 static 数组,但我会接受满足所述条件的方法,即使该数组在技术上属于不同类型。 更正式地说,我想取两个ulong s nr和nc ,并在运行时创建一 ...

C++ 硬件破坏性和建设性干扰大小如何与强制声明顺序配合使用? - How would C++ hardware destructive & constructive interference size work with the mandated declaration order?

作为参考,干扰大小是 C++17, P0154R1 的一部分,C++23, P1847R4提出了强制声明顺序。 据我所理解... 第一个提议要求编译器将 alignas-ed 成员变量移动得更近/更远。 第二个提议将要求编译器按照类中声明的顺序布置成员变量。 在我看来,第二个提案比第 ...

memory 布局 C++ object - memory layout of C++ object

据我了解,当 class 定义时,所有成员函数都将在单独的 memory 中创建,并且对于所有对象都是通用的。 并且只为每个 object 单独创建成员变量。 但是当使用 object 调用时,成员 function 是如何执行的? 这些成员 function 的地址将存储在哪里? 如果我执行这个 ...

如何确定Linux-Kernel对象的memory地址范围 - How to determine the memory address range of Linux-Kernel objects

我想检查内核/bpf/verifier.c 中的函数加载到的 memory。 在编译到 verifier.o 之后,object 被链接到 kernel 中。 在 /proc/kallsyms 中仅列出了非 static 函数。 但是我想要 c 文件中定义的所有函数的地址。 如果 kaslr 关闭, ...

C++ 是否保证具有单个平凡成员的“平凡”结构的二进制布局相同? - Does C++ guarantee identical binary layout for “trivial” structs with a single trivial member?

我们的项目中有一些严格类型的 integer 类型: 基本上这里提出的东西或类似于Unit Library中使用的东西。 这些结构基本上是整数,除了类型系统。 我现在的问题是: C++ 语言是否保证这些类型在 memory 中的布局与常规int相同? 注意:因为我可以静态检查类型是否具有相同的大小 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM