c语言中的memset()函数
- 功能:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。
- 用法:void *memset(void *s, char ch, unsigned n); 头文件<memory.h>
- 栗子
-
#include <string.h> #include <stdio.h> #include <memory.h> int main(void) { char str[20]; memset(str,NULL,strlen(str)); //清空数组 char buffer[] = "Hello world/n"; printf("Buffer before memset: %s/n", buffer); memset(buffer, '*', strlen(buffer) ); printf("Buffer after memset: %s/n", buffer); return 0; } /* 输出结果: Buffer before memset: Hello world Buffer after memset: *********** */
c语言中的asset()断言宏
- 功能测试一个条件,并可能使程序终止,如果它的条件返回错误,则终止程序执行。
- 用 法: void assert(int test); 头文件<assert.h>
-
assert的作用是现计算表达式 test,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
- 栗子
-
#include <assert.h> #include <stdio.h> #include <stdlib.h> struct ITEM { int key; int value; }; void additem(struct ITEM *itemptr) { assert(itemptr != NULL); } int main(void) { additem(NULL); return 0; }
使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。