C言語memset()関数の使用
関数のプロトタイプ:
役割:sが指すあるブロックのメモリの中の各バイトの内容をすべてchが指定したASCII値に設定し、ブロックの大きさは3番目のパラメータによって指定され、この関数は通常、新しい申請のメモリの初期化作業を行い、その戻り値はSを指すポインタである.
例1:
コンパイル実行:
例2:
/*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値に設定し、ブロックの大きさは3番目のパラメータによって指定され、この関数は通常、新しい申請のメモリの初期化作業を行い、その戻り値は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
",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 ;
}