C/C++중 memset()함수 상세 설명 및 역할 소개

2347 단어 C++memset()함수.
memset 함 수 는 메모리 할당 함수 로 특정한 메모리 공간 에 할당 하 는 데 사 용 됩 니 다.
헤더 파일 에 포함 되 어 있 으 며 메모리 공간 을 바이트 별로 초기 화 할 수 있 습 니 다.
원형 은:

void *memset(void *s, int v, size_t n);
여기 s 는 배열 이름 일 수도 있 고 특정한 내 적 공간 을 가리 키 는 지침 일 수도 있다.
v.채 울 값;
n.채 울 바이트 수;
예:

struct data
{
char num[100];
char name[100];
int n;
};
struct data a, b[10];
 
memset( &a, 0, sizeof(a) ); //            ,a      ,  &
memset( b, 0, sizeof(b) ); //b    ,      ,    &
예 2:

char str[9];
우 리 는 memset 로 str 에 게"0000000"으로 초기 화 했 습 니 다.용법 은 다음 과 같 습 니 다.
memset(str,0,8);
메모,memset 는 바이트 별로 복사 되 어 있 습 니 다.
예 3:

int num[8];
우 리 는 memset 로 str 를{1,1,1,1,1,1,1,1}으로 초기 화 합 니 다.
memset(num,1,8);//이렇게 하 는 것 은 옳지 않다
하나의 int 는 4 개의 바이트 이 고 8 개의 int 는 32 개의 바이트 이기 때문에 먼저 값 을 부여 해 야 하 는 길 이 는 8 이 아니 라 32 이다.
memset 는 바이트 복사 이기 때문에 num 을 비롯 한 8 바이트 공간 은 모두 1 로 할당 되 어 있 습 니 다.
즉,int 가 0x 0000001 0000001 0000001 0000001 0000001 0000001 로 바 뀌 었 는데 이것 을 십 진법 으로 바 꾸 면 1 과 같 지 않 을 것 이다.


따라서 memset 에서 사용 할 때 조심 하 십시오.char 이외 의 배열 에 값 을 부여 할 때 0 또는-1 로 초기 화 할 수 있 습 니 다.
(memset(a,1,20)을 사용 하면;
a 가 가리 키 는 메모리 의 20 바이트 에 값 을 부여 하 는 것 입 니 다.각각 ASCII 를 1 로 하 는 문자 로 채 우 고 바 이 너 리 로 전환 한 후 1 은 0000001 로 한 바이트 를 차지 합 니 다.하나의 INT 요 소 는 4 바이트 로 합 쳐 10000000 10000000 1000000001 이 고 16843009 와 같 으 며 하나의 INT 요소 에 대한 대 가 를 완성 했다.)

#include <memory.h> //     ,C     ,C++    <cstring> 
#include <stdio.h>
 void main( void ) 
{ 
 char buffer[] = "This is a test of the memset function"; 
 printf( "Before: %s
", buffer ); memset( buffer, '*', 4 ); printf( "After: %s
", buffer ); }
출력: 
Before: This is a test of the memset function 
After: **** is a test of the memset function 
C/C++에서 memset()함수 에 대한 상세 한 설명 과 그 역할 에 대한 이 글 은 여기까지 입 니 다.더 많은 관련 C++  memset()함수 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기