#include <assert.h>
void assert( int expression );
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,并且能够指出错误在哪行,然后马上终止程序,有点if判断的味道。
- #include <stdio.h>
- #include <assert.h>
- int main()
- {
- char *p;
- char a[] ={"china"};
- p = (char *)malloc(strlen(a)+1);
- p = a;
- printf("%s %d",p,strlen(p));
- assert(p == NULL);
- return 0;
- }
程序马上报错,并且显示第几行。
- 引用:
-
-
-
- #include <stdio.h>
- #include <assert.h>
- #include <stdlib.h>
-
- int main( void )
- {
- FILE *fp;
-
- fp = fopen( "test.txt", "w" );
- assert( fp );
- fclose( fp );
-
- fp = fopen( "noexitfile.txt", "r" );
- assert( fp );
- fclose( fp );
-
- return 0;
- }
-
-
一般可以这样用 char *string(const char *p)
{ assert(p!=NULL);}
调试的时候进行判断,传进去的是不是空指针。
assert这个函数只能在调试阶段使用。