原创 free()到底做了什麼

1.問題 在LeetCode上做題偶然發現一道題:free內存後,還繼續調用該指針,於是好奇,想了解free到底做了什麼。 這段代碼的free()掉了nextTemp結點的malloc內存,但後面還可以使用nextTemp = next

原创 Linux字符驅動

1.Linux設備驅動分類 按管理的設備硬件來分:字符設備,塊設備,網絡設備。1)字符設備     按字節流訪問,能夠順序訪問,也能夠指定位置訪問,如:按鍵 串口 終端 觸摸屏 LCD等。2)塊設備     在Unix系統下,塊設備按一定

原创 Linux內核模塊編程

1.Linux內核模塊編程特點 1)不能使用C庫和C標準頭文件 2)必須使用GNU規範 3)沒有內存保護機制 4)不能處理浮點運算 5)注意同步和併發的問題 6)注意可移植性 2.函數架構 int xxx(void) {     ret

原创 數組的下標爲什麼從0開始

數組(Arrary)是一種線性表數據結構。它用一組連續的內存空間,來存儲一組具有相同類型的數據。 從數組存儲的內存模型上來看,“下標”最確切的定義應該是“偏移(offset)”。如果用a來表示數組的首地址,a[0]就是偏移爲0的位置,也就

原创

最近在【極客時間】學習《數據結構和算法》,目的性的梳理以及記錄下知識點。 1.理解棧 “後進先出,先進後出”,這就是典型的“棧”結構。比如:疊盤子,都是從下往上一個個放;取的時候,我們是從上往下一個個的依次取出來,不能隨機抽出,只能按照規

原创 [智能家居]Linux 字符編碼的轉換

1.項目需求:GB2312轉UTF編碼 2.思路:iconv庫的使用 3.代碼實例 /************************************************ * @FileName : gb2utf

原创 資源下載地址

1.Ubuntu 16.04 http://releases.ubuntu.com/ 2.VS 2017 社區版(Community)下載地址: 網盤鏈接:https://pan.baidu.com/share/init?surl=jJX

原创 [智能家居]限制程序可執行時間範圍

項目需求:限制一個情景的執行時間段,如:一個情景只能在2點到3點執行,其它時間不執行。 思路:獲取當前的時間戳,把開始和結束時間設爲今天的時間戳,拿當前時間與開始和結束時間三者做對比。當然也要考慮跨天的問題。 涉及的知識點: 1.tm結構

原创 智能家居特性及術語

智能家居環境具備一些共同的特性及基本的術語: 1.傳感器(Sensor):可產生信息,並將信息從一個通信網絡裏傳送給其它設備,如在恆溫器內的溫度傳感器、運動傳感器、門磁或煙霧等傳感器。 2.控制器(Control):可通過通信網絡管理其它

原创 [Al]算法:有n級階梯,每次走1步或2步,最多有多少種走法

  /***************************************************************** * @Filename : floor.c * @Author : M

原创 [thinking]C語言flaot值比較

最近面試,發現很多基礎的原理都還沒搞懂。自己平時沒有應用或接觸到的知識,也不會想着去學習。但遇到的更多,自己就會去探索的更多。 1.int型比較 a == b;//( != ,<,>,<=,>=) 2.bool型比較 a == tru

原创 [thinking] vmware-tools重裝後,仍無法複製粘貼操作

環境:mac裝的VMware,ubuntu 突然一天,虛擬機與主機之間的複製粘貼無法進行,重新安裝vmware-tools,重啓過,編輯過vimrc,可結果還是不行。 後經過百度不停查找和嘗試,終於找到解決的方法: 複製粘貼、拖拽、窗口縮

原创 [thinking] malloc引發的事件

環境:ubuntu 16,C語言 問題描述:程序中,malloc分配小於128字節可以正常分配,但大於128k的時候,malloc就崩了。 分析:代碼截圖如下: 下面是執行的結果,可以看出第710行是沒跑的,死在了malloc裏面。

原创 Linux C編譯原理

一.基本概念 1.編譯程序:把一種語言(源語言---高級語言)轉換成另一種語言(目標語言---低級語言--> 彙編或機器語言)。 2.詞法分析:對輸入的字符串進行掃描和分解,識別出一個個字符及其數據類型; 3.語法分析:對輸入的字符串進行

原创 C語言:數組

1.一維數組 1.1 一維數組的定義      類型說明符   數組名[常量表達式];// int a[10];     注:常量表達式中可以包括常量和符號常量,也就是說,C語言不允許對數組的大小做動態的定義,即數組的大小不依賴於程序運行