memset函数详解

来源:互联网 发布:美工学习 编辑:程序博客网 时间:2024/06/16 03:17

memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针


函数原型为:

void *memset(void *s, int ch, size_t n);

memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;

如:

#include <stdio.h>#include <stdlib.h>             //数值转化函数atoi在其中#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <termios.h>#include <errno.h>int main(int argc,char **argv){int fd;char *adc = "/dev/adc";char buffer[512];int len = 0,r = 0;memset(buffer,0,sizeof(buffer));printf("adc ready!\n");if((fd = open(adc,O_RDWR|O_NOCTTY|O_NDELAY))<0)printf("open adc err!\n");else{printf("open adc success!\n");len = read(fd,buffer,10);if(len == 0)printf("return null\n");else{r = atoi(buffer);r = (int)(r * 10000/4095);//Datas transition to Resprintf("res value is %d\n",r);}}}