Re: [問題] bug找不出來的時候大家會如何解決??

看板Programming作者時間17年前 (2007/06/13 20:02), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串5/6 (看更多)
※ 引述《ggg12345 (ggg)》之銘言: : : 下開發另一個部份,最後再對整體部份做整合測試 : 請教一下 assert 的用法與範例 ! : : ,我不是指原po,我看過太多人寫程式都是一口氣 <<吃掉一些>> 我也不是很行: 按照標準說法,assert是一個MACRO, #define assert(X) .... 他的用法是X是一個運算式,當此運算是結果為0 (NULL)時 assert會做以下幾件事: 從stderr印出以錯誤訊息,並呼叫abort() function來結束程式。 例如: #include <stdio.h> #include <stdlib.h> #include <assert.h> void foo(int *q) { int *p; assert(p = q); printf("Checkking OK\n"); } int main(void) { int *ptr = NULL; ptr = (int *)malloc(sizeof(int)); /* ptr 有位址,可以正確執行 */ foo(ptr); free(ptr); /* ptr 位址不為NULL,雖然free掉但不為NULL,assert"不"會偵錯到錯誤 */ foo(ptr); ptr = NULL; /* ptr 位址為NULL,assert會偵錯到錯誤 */ foo(ptr); return (0); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.105.176

06/13 20:31, , 1F
free(ptr) 不會更動到ptr值吧
06/13 20:31, 1F

06/13 20:35, , 2F
的確不會更動到ptr值
06/13 20:35, 2F
文章代碼(AID): #16Rzpi-l (Programming)
討論串 (同標題文章)
文章代碼(AID): #16Rzpi-l (Programming)