關於C語言日常使用中的實際問題

2021-09-14 05:33:14 字數 1159 閱讀 9617

千萬不要在程式中隨意移動你的指標!!!因為這個小問題搞了一下午+晚上

字元陣列的容量必須至少比待儲存字串中的字元數多1.

在分配字元指標空間malloc()時也必須至少比至少比待儲存字串中的字元數多1,再分配空間後必須及時free(); 釋放指標後, 一定要將指標指向null。否則p指向的空間是未知資料 p就成了野指標

char test[5]

="abcd"

;//最多四個字元

char

*info =

malloc(6

);memset

(info,0,

6);strcpy

(info,

"abcdef");

//此處分配的字串空間不足,申請6個字元空間,最多5個字元**

printf

("1.%s\n"

, test)

;//info++;

printf

("2.%s\n"

, info)

;free

(info)

; info =

null

;

編譯器問題——c89和c99

c89規定,在任何執行語句之前,在塊的開頭宣告所有區域性變數。

在c99以及c++中則沒有這個限制,即在首次使用之前,可在塊的任何位置都可以宣告變數。

visual studio2013終於開始比較良好地支援c99特性

原始檔儲存為.c格式的話變數只能定義在最前,若儲存為.cpp格式的話,變數定義較為靈活,不用在最前。

在c語言裡,變數只能在函式的開頭處(作用域即{})宣告和定義。在函式裡要用到的變數必須要在開頭處宣告定義。宣告定義的前面不能有任何其他非宣告定義的語句。全域性變數在函式體的外部宣告定義。而c++裡(.cpp檔案是按c++標準編譯的),只要在用到變數前對該變數進行宣告定義就行了,位置不做特別要求。而c語言的就定了在乙個模組裡(函式、迴圈體等)先宣告一切所需變數後才能進行相關操作的規定。

希望大家以此為鑑,不要犯低階錯誤!

C語言編寫實際問題看法

每個人應分到7個籮筐,每人各3.5筐魚。採用3 3陣列來表示三個人分到的東西。陣列的每行每列元素之和都是7 陣列行 滿筐 半筐 3.5筐 每個人所得滿筐數不會超過3筐 每個人至少有1個半筐 來自網路 include int main int a 3 3 count int i,j,k,m,n,fla...

C語言 Switch語句解決實際問題

任務 include define price 12 此處以千千快遞為例,每千克貨物運費12rmb,定義常量巨集 int main printf 請輸入距離 千公尺 scanf f fdistance if fdistance 0 if fdistance 3000 else ffreight pr...

C語言之實際問題 指標賦值

c語言之實際問題 指標賦值 const u8 testbuf 20 void fun u8 mode u8 ptbuf 0 switch mode case 1 ptbuf testbuf printf ptbuf break case 2 ptbuf 0 1 ptbuf 1 1 printf pt...