Re: [問題] bug找不出來的時候大家會如何解決??
※ 引述《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
06/13 20:31, 1F
推
06/13 20:35, , 2F
06/13 20:35, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 6 篇):