cost 244 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 中測試這個。 最簡單的方法是什么? 我試過借用,但編譯器說“沒有借用的價值”。 ...

堆棧 Memory 地址差異

[英]Stack Memory Adress Differences

我是 c++ 的新人。 我有 2 個代碼片段。 第一的 結果是 第二個 integer 具有更大的十六進制值。 第二 結果是 這次第一個更大。 有人可以解釋一下它們之間的區別。 謝謝你。 ...

在程序集中使用節點 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指令; 這是否意味着在加載任何操作系統之前必須存在某種堆棧 ...

堆棧 Memory 和 C 中的多線程

[英]Stack Memory and Multithreading in C

通常,當我有兩個並發運行的線程,並且每個線程調用相同的 function 時,有兩個 function 實例並行運行,每個線程的堆棧中都有一個 ZCD69B4957F06CD82917BF3D6198E。 沒有比賽條件。 我的問題是,如果我有一個帶有 function 指針的全局結構怎么辦。 如果我 ...

存儲在“數據部分”而不是堆棧中的全局變量的基本原理?

[英]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