原创 malloc,ralloc,calloc函數的用法

(一)malloc. 原型 extern void *malloc(unsigned int num_bytes); 頭文件: #include <stdlib.h> #include <malloc.h> 功能:

原创 變量存儲區域的劃分

計算機主要由CPU、硬盤和內存組成。而每一個程序在執行時就會產生一個進程,在Linux中,每一個進程都會有一個4G的虛擬地址空間。(以32位系統爲例,Linux系統中每個進程共有3GB的用戶地址空間,當用戶調用系統調用時,內核線程

原创 如何避免野指針?

何爲野指針?野指針就是,沒有被初始化的指針,會由系統默認一個隨機地址的指針。如果不小心使用的野指針,易造成內存泄漏的段錯誤。給我們的程序造成一定的破壞。 那麼,我們該如何避免野指針呢? 首先,我們該養成一些良好的編程習慣。 1、當

原创 簡單的通訊錄(有bug)

#include <stdio.h> #include <stdlib.h> #define MAXSIZE 11 //這個最好大一點 typedef struct address_book { // int NO;

原创 錯誤:expected ‘)’ before ‘*’ token

今天在寫代碼時,又遇到 錯誤:expected ‘)’ before ‘*’ token 說實話,這個錯誤不是什麼大錯誤,一般都是什麼手賤之類的多寫了或少寫了啥,但是我又找半天。 我原先以爲自己是中英符號切換錯誤、或是多寫了空格之類的

原创 順序表與單鏈表

1.數據元素之間不是獨立的,存在特定的關係,這些關係即結構。所以數據結構是指數據對象中數據元素之間的關係。 數據結構分爲邏輯結構和物理結構。 邏輯結構分爲: 集合結構:數據元素之間沒有特別的關係,僅同屬相

原创 函數指針與函數指針數組

函數指針與函數指針數組有什麼區別呢?讓我們從下面的兩個例子中看看其二者之間的區別吧 eg1: #include <stdio.h> int func(int num) { printf("num = %d \n", num);

原创 ralloc、malloc使用時的注意事項

malloc不能初始化所分配的內存空間,而函數calloc能。如果malloc函數分配的內存空間原來沒有被使用過,則其中的每一位可能都是0;反之,如果這部分內存曾經被分配過,則其中可能遺留各種各樣的數據,也就是說,使用malloc函數的程

原创 分享

推薦大家一個靠譜的論文檢測平臺。重複的部分有詳細出處以及具體修改意見,能直接在文章上做修改,全部改完一鍵下載就搞定了。怕麻煩的話,還能用它自帶的降重功能。哦對了,他們現在正在做畢業季活動, 贈送很多免費字數,可以說是十分划算了!地址是:h

原创 進程間的信號通信

1.信號通信: 信號(signal)機制是Unix系統中最爲古老的進程間通信機制,很多條件可以產生一個信號: (1)當用戶按某些按鍵時,產生信號。     (2)硬件異常產生信號:除數爲0,無效的存儲訪問

原创 趣味題(求車速)

問題:一輛以固定速度行駛的汽車,司機在上午10點看到里程錶上的讀數是一個對稱數(即這個數從左向右讀和從右向左讀是完全一樣的),爲95859.兩個小時後里程錶上出現了一個新的對稱數。問該車的速度是多少?新的對稱數是多少? 問題分析與算法設計

原创 宏定義與條件編譯

宏定義: 宏定義了一個代表特定內容的標識符。預處理過程會把源代碼中出現的宏標識符替換成宏定義時的值。宏最常見的用 法是定義代表某個值的全局符號。 宏的第二種用 法是定義帶參數的宏(宏函數),這樣的宏可以象

原创 volatile關鍵字的作用

舉例說明: volatile int i=10; int j = i; … int k = i; volatile 告訴編譯器i是隨時可能發生變化的,每次使用它的時候必須從i的地址中讀取,因而編譯器生成的可執行碼會重新從i

原创 結構體與共用體

結構體的作用: 在網絡協議、通信控制、嵌入式系統的c/c++編程中,我們經常要傳送的不是簡單的字節流(char型數組),而是多種數據組合在一起的一個整體。其表現形式是一個結構體。簡單來說,結構體就是用來封裝數據的。 結構體的定義: s

原创 筆試題解析2

1、下面哪種C/C++分配內存的方法會將分配的空間初始化爲0? A  malloc() B calloc() C realloc() D new() (1)malloc 函數: void *malloc(