面試問題c

2021-08-28 04:07:12 字數 723 閱讀 8431

(1)如何避免記憶體洩漏

(2)namespace

(3)如何防止記憶體洩漏

(4)堆和棧的區別

(5)記憶體的幾種形式

(6)linux指令

(1)如何避免記憶體洩漏

答:記憶體洩漏

記憶體洩漏是指由於未能釋放掉不再使用的記憶體情況,並不是指內存在物理上的消失,而是應用程式分配某段記憶體後,由於設計錯誤失去了對該段記憶體的控制,因而造成了浪費。

(1)堆記憶體洩漏。對記憶體指的是程式執行中根據需要分配通過malloc,realloc new等從堆中分配一塊記憶體,再是完成後必須通過呼叫對應的free或者delete刪除掉,如果程式設計錯誤導致這部分記憶體沒有被釋放,那麼此後這塊記憶體將不會被使用產生堆記憶體洩漏。

(2)系統資源洩漏。主要指程式使用系統分配的資源比如bitmap handle socket等沒有使用相應的函式釋放掉,導致系統資源浪費,嚴重可導致系統能效降低,系統執行不穩定。

(2)namespace:

答:namespace翻譯為命名空間,簡單理解為給類、變數、函式等限定乙個區域。

namespace翻譯為命名空間,顧名思義,就是把一些類、變數、函式包含在乙個空間中,在呼叫的時候使用作用域限定符號來呼叫,防止出現同名類、變數、函式無法分清的情況。也可以用來區分乙個程式中各個模組的功能,類似於類。

例如:

C 面試問題

一面 1 多型性都有哪些?靜態和動態,然後分別敘述了一下虛函式和函式過載 2 動態繫結怎麼實現?就是問了一下基類與派生類指標和引用的轉換問題 3 型別轉換有哪些?四種型別轉換,分別舉例說明 4 操作符過載 操作符 具體如何去定義,讓把操作符過載函式原型說一遍 5 記憶體對齊的原則?原則敘述了一下並舉...

C 面試問題

1 概念 陣列 儲存連續多個相同型別的資料 2 賦值 同型別的指標變數可以相互賦值,陣列不行,只能乙個乙個元素的賦值或拷貝 3 儲存方式 陣列 連續記憶體空間。4 sizeof 陣列的sizeof求的是占用的空間 位元組 在32位平台下,無論指標的型別是什麼,sizeof 指標名 都是4,在64位平...

C 面試問題

一面 1 多型性都有哪些?靜態和動態,然後分別敘述了一下虛函式和函式過載 2 動態繫結怎麼實現?就是問了一下基類與派生類指標和引用的轉換問題 3 型別轉換有哪些?四種型別轉換,分別舉例說明 4 操作符過載 操作符 具體如何去定義,讓把操作符過載函式原型說一遍 5 記憶體對齊的原則?原則敘述了一下並舉...