C语言使用memset()函数

函数原型:

/*string.h*/
/* Set N bytes of S to C.  */
extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1));
即:void *memset(void *s,int ch, unsigned n)
作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。

 

示例1:

#include <stdio.h> 
#include <malloc.h> 
#include <string.h> 
int main(int argc, const char *argv[]) 
{ 
    char * my_str = (char *)malloc (100);  
    char msg_buf[1024]; 
     
    memset (my_str, 'a',10 ); 
    memset (msg_buf,0,1024 );     //0->NULL 
     
    printf ("%s\n",my_str); 
    free (my_str);  
    return 0 ; 
}
编译运行:
aaaaaaaaaa

示例2:

//memset可以方便地清空结构体、数组  
#include <stdio.h> 
#include <string.h> 
struct my_struct 
{ 
    int x;  
    char s[ 10]; 
}; 
int main(int argc, const char *argv[]) 
{ 
    struct my_struct ms; 
    struct my_struct MS[10]; 
    //清空ms 
    ms .x = 0 ; 
    ms .s[ 0] = '\0' ; 
    //memset清空ms 
    memset (&ms, 0,sizeof(struct my_struct )); 
    //memset清空MS 
    memset (MS, 0,sizeof(struct my_struct )*10);  
 
    return 0 ; 
}






你可能感兴趣的:(c,memset)