原创 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(