C陷阱 隨時更新

2021-06-25 07:48:28 字數 704 閱讀 1844

整理彙總平時程式設計過程中遇到的容易出錯的地方

1. 多處malloc,後面的malloc申請失敗返回,前面申請成功的未釋放,造成快取洩露

35 void main()

36

44 buff2 = malloc(100);

45 if (null == buff2)

46

50 }

2. free無效指標,malloc申請的快取,指標進行過偏移操作,釋放

void main()

36

43 buff += sprintf(buff,"str",strsize);

44 free(buff);//buff已經偏移過,此時釋放非法

45 return;

46 }

3. long/unsigned long在linux下(gcc編譯器)32位系統上為4位元組,64位系統上為8位元組。

4.sprintf函式儲存格式化字串時造成踩記憶體,如下面的程式會踩記憶體,因為「1122」末尾有\0字串結束符,會向destbuf複製5個字元。推薦使用snprintf 指定複製最大長度。

void main()

C言語語法總結 隨時更新

一 gccvisual studio 1.f5或ctrl f5或本地windows偵錯程式 把原 編譯成可執行檔案 2.生成 編譯 生成 obj目標檔案 3.生成 僅用於專案 僅鏈結 cdemo 生成可執行檔案 exe 2.3 步等於1 二 語法 1.puts hello world 輸出字串 2....

個人筆記(隨時更新)

專案中,當跨controller返回時,需要刪除棧中的控制器 動態操作uitableviewcell 時,需要對模型陣列操作 for index,verify in self.pendingarray.enumerated 移動浮 標,懸浮的圖示有時候影響操作,需要挪開,但是又能隱藏 private...

flex筆記 隨時更新

1.給datagrid動態新增列 如datagrid的id為dg1,以下 為其新增列 var col datagridcolumn new datagridcolumn col.headertext colhedertext.text dg1.columns dg1.columns.concat c...