cost 215 ms
C++ 新关键词 - C++ New Keyword

我正在看这个关于堆栈和堆的教程: C++什么时候用new运算符,什么时候不该用? 在堆示例中,它使用了new关键字,但他首先将int* ptr1初始化为NULL 。 这重要吗?如果重要,为什么? 或者,它只是在浪费空间吗? 我查看了代码并尝试思考为什么在您可以使用int* ptr1 = new i ...

带括号包装器的隐式与显式转换 - Implicit versus Explicit cast with parenthesis wrapper

隐式演员表: 显式演员表: 但是,如果直接访问它的属性,双重包装隐式转换是否使其成为显式转换? 如下所示... 没有什么重要的只是好奇因为我记得读过关于隐式转换只存储在一个地方(我忘记了堆栈或堆)但是显式转换将它存储在两个地方占用两倍的 memory 或其他东西所以现在我尽可能避免它们. 没有什么重 ...

这是最佳的:一个 char 数组未初始化但 null 在 read() 之后终止或用零初始化所有元素然后 read() for C++ - Which is optimum: a char array uninitialized but null terminated after read() or initialize all elements with zero and then read() for C++

以下代码片段中哪一个是最佳实践、最优(CPU 利用率)、安全、可读: 或者 在哪种体系结构中,这些是首选或不鼓励的。 比方说我们g++ -S -fverbose-asm和as -alhnd 。 这有助于汇编代码比较以获得最佳代码选择。 我会尽快添加它的结果。 ...

RUST 等同于以下 C 代码是什么? - What is the RUST equivalent of following C code?

我有一个小的 C 代码,它通过修改堆栈地址处的数据来演示运行时堆栈功能。 其中的 Output 是:a:20 b:20 显示“fun2”中的“b”使用与“fun”中的“a”相同的堆栈地址。 我也想在 Rust 中测试这个。 最简单的方法是什么? 我试过借用,但编译器说“没有借用的价值”。 ...

在程序集中使用节点 x86 - Using nodes in assembly x86

我试图了解这段代码的作用: 据我了解,它会尝试确定“17”是否出现在数据部分中。 鉴于 %rsp 的值一开始是一些十六进制 X,我想知道 %rsp 的值范围是多少(使用 X),但它看起来取决于测试部分。 我们是从 go 从 A 到 B,然后是 E,F,回到 C,最后是 D? 最后会有什么价值? 我 ...

在 x86_64 上向其推送值时堆栈 memory 如何工作? - How stack memory works when pushing value to it on x86_64?

我一直在用汇编编写一些代码,我发现了一个错误,它覆盖了其他 memory 位置并给我一个分段错误,这个问题是使用 rbp 寄存器造成的,但下面的示例使用其他寄存器以便于理解。 我的问题是:利用堆栈向下增加的事实,rbp 指向使用 rax 寄存器推送的数据的序列的第一个字节 (0) 或序列的最后一个 ...

如何在 x64 程序集的堆栈上声明一个本地数组? - How to declare a local array on the stack in x64 assembly?

我试图在我的 x64 汇编程序中的堆栈上声明一个“四字”数组。 我知道如何通过在.data段中声明数组来做到这一点,但如果可能的话,我想使数组成为main的本地数组。 我知道我也可以使用malloc和动态 memory 分配来做到这一点,但我首先想看看是否有可能在堆栈上做到这一点。 我的问题是我已 ...

C++ lambda function 什么时候捕获变量 - When does C++ lambda function captures the variables

以下代码块通过 lambda 表达式启动线程。 这个 lambda 表达式通过引用捕获局部变量“testVar”。 当线程 function 执行时,局部变量从 scope 中消失,线程 function 将无法访问校正值。 通过将捕获子句中的“&”更改为“=”来简要测试复制捕获。 for ...

栈memory中初始化的局部变量是如何存储的? - How are initialized local variables stored in the stack memory?

将局部变量存储到堆栈 memory 中是否取决于在 function 调用中使用它们的值? 在使用“C”编程语言(更具体地说是使用指针)进行一些简单练习时,我注意到以下关于初始化局部变量的异常(我知道这不是异常,只是我缺乏正确的理解)。 当我定义和初始化几个变量,并尝试打印第一个和最后一个变量的地 ...

什么实现了典型进程'memory中的堆栈? - What implements the stack in a typical process' memory?

我一直对“堆栈”的实现位置感到困惑。 我知道进程的典型 memory 布局(至少在类 Unix 系统上是这样),但我一直想知道实际上是什么设置了该布局的结构。 是操作系统吗? 编译器? 如果是,那么我不明白 x86 ISA 怎么会有push指令; 这是否意味着在加载任何操作系统之前必须存在某种堆栈 ...

存储在“数据部分”而不是堆栈中的全局变量的基本原理? - Rationale for global variables stored in "data section" instead of stack?

全局变量可以存储在堆栈的顶部,类似于局部变量,除非程序结束,否则永远不会被删除。 但这需要增加每个全局变量的堆栈指针,即使它们永远不会使用堆栈指针(因为堆栈永远不会在该区域中增长或缩小,它在整个程序运行时是持久的 scope。)是放置这些变量的基本原理而是在不同的部分(必须在 CPU 架构中单独添 ...

为什么合并两个已排序的链表有效 - 因为当我们执行 l4=l4.next 时,l4 指向堆上的不同 object,而不是 l3。 - C# - Why does merging two sorted linked Lists work - since when we do l4=l4.next, l4 points to a different object on heap, than l3. - C#

很抱歉这个问题有点复杂 - 但我找不到更好的方法来问这个问题。 非常感谢所有的帮助! 以下是我为合并两个排序链表而编写的方法 - ( MergeTwoLists(ListNode list1, ListNode list2) )。 以下是整个程序: 现在,这是我的问题 - 上面的方法MergeTw ...

调用者或被调用者是否负责释放 x64 程序集(Windows)中的影子存储? - Is the caller or callee responsible for freeing shadow store in x64 assembly (windows)?

来自 C 和 C++,我最近开始学习 x86-64 汇编,以更好地了解我的程序的工作原理。 我知道 x64 汇编中的约定是在调用 function 之前在堆栈上保留 32 个字节的“影子存储”(通过执行: subq $0x20, %rsp )。 我不确定的是:被调用者是负责再次增加%rsp还是调用 ...

C++ 堆栈溢出错误,即使我使用指针数组 - C++ stack overflow error, even though i use a pointer array

您好,我试图通过对具有 1 000 000 个数字的数组进行排序来测试算法(快速排序),但出现堆栈溢出错误。 我之前发现我应该将数组保存在堆上而不是堆栈上。 所以我这样做了。 而不是这个: 这就是我如何称呼 function 以及它的样子: 但我仍然得到堆栈溢出错误。 有谁知道我该怎么做? ...

从栈底弹出 - Popping from stack base

我正在制作一个有趣的操作系统,同时学习更多的组装。 我了解了推送和弹出,据我了解,pop 获取堆栈上任何其他值之上的值,因此它会获取最后一个推送的值。 但我想知道,我们真的可以直接在栈底(即第一个压入的)弹出值吗? 喜欢: 而不是C,我想以A为例。 (我在 16 位模式下,汇编器是 NASM,在标 ...

C 中的堆栈分配数组在 C 中是否默认归零? - Are stack-allocated arrays in C zero'd out by default in C?

当我使用malloc()在堆上分配内存时,除非我使用calloc()或memset()将其清零,否则该内存中可能会有垃圾。 堆栈的情况是否相同,或者我可以安全地假设我在堆栈上分配的任何内容都不会有垃圾? 另外,这在不同的系统或操作系统上是否有所不同? ...


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