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 ; 
}






转载于:https://my.oschina.net/letiantian/blog/192368

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值