Time of Update: 2018-12-05
最近在看C語言深入一點方面的書,感覺指標和數組的關係有很大要理解的地方。偶爾看到有人寫了關於指標和數組的長篇大論。直覺告訴我那是一篇好文章。一定是那位高手幾年來實踐和琢磨的成果。如果能達到他理解的那種水平,那我的C語言又會上一個台階。但是為了能有深刻的體會,我先不看他得文章,自己先琢磨一下。int a[5]={0,1,2,3,4}int *p1=a; //將p1定義為指向數組a首元素的首地址,而不是指向數組a的地址,雖然值一樣,意義不一樣a+i不等於&
Time of Update: 2018-12-05
本來工程在共用庫中使用MFC是沒問題的。改為在靜態庫中使用MFC就出現了下面的問題。1>msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已經在 libcmtd.lib(typinfo.obj) 中定義1>msvcrtd.lib(ti_inst.obj)
Time of Update: 2018-12-05
今天遇到一個問題,在程式的前一段申請了一段記憶體調用的一個函數申請了記憶體沒有釋放。再調用第二個函數實現檔案IO發現老失敗。我前後檢查了fread和fgets的各個參數都沒錯。單步調試到檔案讀入的部分就崩潰。搞了好久實在不解為什麼。後來網上有人說有可能是記憶體泄露了。我檢查了程式,發現前面調用的函數造成了記憶體泄露。加了一條free語句後,問題解決了。但是我是不明白為什麼前面記憶體泄露會導致後面檔案讀入錯誤。前面申請的記憶體不是很大啊。
Time of Update: 2018-12-05
簡介 MFC的標準列表框控制項並沒有給出設定每一行高度的介面。有兩種方法可以設定:1.取巧的方法:為列表框插入表徵圖,每一行的高度自動變為表徵圖的高度。這個方法很快,但總覺得有點彆扭,且不好移植。所以我沒用這種方法。2.自繪列表框,這正是本文要說的。 效果預覽 實現過程 1.在對話方塊上拖拉出一個List Control 控制項,並設定屬性Owen Draw
Time of Update: 2018-12-05
揪出"程式員"身上的"六宗罪"文/飛天含雪qq 543415188 email: feitianhanxue@126.com 部落格 http://blog.sina.com.cn/feitianhanxue 有人曾說過"程式員是IT行業發展的基石",這話可算是把程式員的角色詮釋的一清二楚。小到形形色色的街頭外包公司,大到諸如Microsoft, Oracle有自身核心技術的的世界級軟體公司,無一不把程式員看做支撐公司發展的血液,然而正是在這種發展趨勢發展潮流下,程式員身上的"罪孽"
Time of Update: 2018-12-05
今天有人在論壇中發了這樣一個蛋疼的問題:int i =1,d; d=(++i)+(++i)+(++i);
Time of Update: 2018-12-05
沒有定義UNICODE,所以它裡面的字串就是簡單用"
Time of Update: 2018-12-05
“陰謀”在斷網之後——查殺arp病毒 arp欺騙這個概念我們在以前的文章曾多次講到,簡單的說就是區域網路中的攻擊者通過發送偽造的資料包給路由器,從而達到嗅探或讓區域網路中任一電腦斷線的目的。當然,arp欺騙能夠做到的不僅僅如此,就像最近很猖狂的arp病毒——傳奇殺手,利用的就是arp欺騙,讓使用者斷線,迫使使用者重新登入傳奇伺服器,然後再通過arp欺騙嗅探資料包中的傳奇帳戶資訊。下面就讓我們以“傳奇殺手”為例,介紹一下arp病毒的原理和清除方法。什麼是arp病毒 arp病毒可以分為兩
Time of Update: 2018-12-05
今天是2012/8/26,暑假終於結束了。哥正式成為大三的學長了。好吧,來總結一下哥的大二吧!關於學習:
Time of Update: 2018-12-05
scanf(),printf()以及fscan(),fprintf()的傳回值都為int型 scanf()的傳回值為成功輸入的資料個數如scanf("%d%d%s",&a,&b,s);執行成功返回3. scanf("%d%d",&a,&b);執行成功返回2.如果在輸入的過程中scanf("%d%d",&a,&b);由於某種原因只有a輸入成功了則返回1,a、b都沒成功則返回0如果遇到錯誤或遇到end of
Time of Update: 2018-12-05
KMP演算法沒搞懂,先把普通的模式串匹配演算法實現再說。很簡單直接上代碼,int Index(const char*str,const char*t){int str_size=strlen(str);int t_size=strlen(t); //因為用到了strlen()函數,記得標頭檔包含string.hint i=0,j=0;while (i<str_size&&j<t_size){if
Time of Update: 2018-12-05
神是什嗎?神即道 道法自然 如來---《天道》王志文飾丁元英 左小青飾芮小丹
Time of Update: 2018-12-05
理論和處理鍵盤輸入一樣,WINDOWS將捕捉滑鼠動作並把它們發送到相關視窗。這些活動包括左、右鍵按下、移動、雙擊新式滑鼠還包括滾輪訊息WM_WHEEL等。WINDOWS並不像處理鍵盤輸入那樣把所有的滑鼠訊息都導向有輸入焦點的視窗,任何滑鼠經過的視窗都將接收到滑鼠訊息,無論有否輸入焦點。另外,視窗還會接收到滑鼠在非客戶區移動的訊息(WM_NCMOVE),但大多數的情況下我們都會將其忽略掉。 對滑鼠的每一個按鈕都有兩個訊息:WM_LBUTTONDOWN,WM_RBUTTONDOWN 。對於三鍵滑鼠還
Time of Update: 2018-12-05
為了給軟體登陸介面做一個動畫效果,決定用gif動畫顯示。 而mfc沒有能直接播放gif的標準控制項。在網上找到了CPictureEx類。安裝一篇教程寫好整個工程後,發現只能顯示gif的一幀。沒有動畫效果了。原來是把gif資源用嚮導添加進工程後gif圖片遭到了破壞。 於是想到不用嚮導添加,而是在程式中動態載入gif檔案。所以在載入gif圖片時用BOOL CPictureEx::Load(LPCTSTR
Time of Update: 2018-12-05
typedef int* pint; //發生在編譯時間相當於個int*起了一個別名,以後可以用來定義整型指標,也是一個類型名了。pint p,q; //p,q都是指向int型的指標而#define pINT int* //發生在先行編譯階段只做簡單的宏替換如pINT p,q替換為int*p,q; //p是指標,而q只是一個整型變數typedef並不是簡單的替換在MSDN中的解釋如下:Visual Studio 2010 - Visual C++Typedef
Time of Update: 2018-12-05
線程:需要同步對象在某些時候進行同步操作。基本原理線程同步機制是為各線程能夠協同工作而設計的。同步是唯一保證共用資料持久的方法。在同步過程中,兩最重要的概念是同步對象(Mutex,Semaphore,Event,CriticalSection)和等待函數((WaitForSingleObject(),WaitForMultipleObjects())。同步對象是記憶體中的變數,你可以像訪問一般的資料那樣來訪問他。線上程同步過程中,需要先定義一個同步對象,同步對象一般具有兩種狀態:標誌的(置位,s
Time of Update: 2018-12-05
今天想弄一下二進位檔案讀寫(後來才知道fscanf和fprintf不能用於二進位檔案的讀寫,但下面的總結對ASSCII檔案適用。)發現一個問題,搜了好久也沒解決如果二進位檔案寫入的時候,用fprintf寫入多個資料時,資料之間沒用空格隔開如下面fprintf(out,"%c%d%d%d%d",HT[i].data,HT[i].weight,HT[i].parent,HT[i].lchild,HT[i].rchild);再用fscanf(in,"%c%d%d%d%d",&HT[i].dat
Time of Update: 2018-12-05
前幾天安裝Centos5.4遇到了一個問題,記錄下來,便於其他可能遇到這個問題的人查詢。安裝鳥哥書上的我要安裝CentOs5.4(鳥哥書上的是5.3,我只能找到5.4)。我先刻了一個光碟片,安裝時花屏,我以為是光碟片刻的有問題,又重新刻了一張。還是老問題。我以為是我的光碟機有問題,又做了一個隨身碟啟動盤。沒想到黑屏好久都沒反映。上網查了一下,原來是顯卡不能識別。選擇文字模式設定。OK!安裝成功。只是進入X-windows還是花屏。看了還得找顯卡驅動。
Time of Update: 2018-12-05
前提:這不是告訴一個從未裝過系統的人裝系統。這隻是給裝過一兩次windows的人一個裝win7+CentOs的方案。看鳥哥的私房菜,學linux自然要裝一個linux啦。我和很多人一樣剛開始學linux,不可能完全捨棄windows。有人選擇在windows上裝一個虛擬機器跑linux。可以虛擬機器裡效能自然要打折扣。如果你的電腦和我的一樣記憶體只有2G的話,你會發現在虛擬機器裡開啟linux,開機是很慢的。而且螢幕的大小也不好看。連鳥哥也說最好不要在虛擬機器裡學linux。所以還是在物理機上真
Time of Update: 2018-12-05
void PostTraverse(BiTree T)//非遞迴後序遍曆二叉樹{ Stack<BiTree> s;//用棧來儲存結點 BiTree p,lastvisit; p=T; lastvisit=NULL; while (p!=NULL || !s.IsEmpty()) { while (p!=NULL) //一直向左,直到遇到的最後一個結點沒有左孩子 { s.Push(p); p=p->lchild; } s.GetTop(p);