C++之memset函式

HFGD2019發表於2020-11-11

本文轉載整理自此連結

memset()是char型初始化函式。

標頭檔案

#include <string.h>
//或者
#include <memory.h>

函式原型

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

功能:講s所指向的某一塊記憶體中的前n個自己的全部內容設定為ch指定的ASCII值。第一個引數為指定記憶體的開始地址,第三個引數為指定記憶體的大小,第二個引數為初始化的內容以ASCII碼錶示。
注:這個函式為新申請的記憶體做初始化工作,其返回值為指向s的指標,它是對較大結構體或陣列進行清零操作的一種最快方法。

使用

memset(結構體/陣列名 , 用於替換的ASCII碼對應字元 , 前n個字元 );
memset(結構體/陣列名 , "用於替換的字元“ , 前n個字元 );
函式解釋:將s中的前n個位元組用ch替換並且返回s
函式作用:在一段記憶體塊中填充某一個給定的值,常用於較大的對結構體和陣列的清零操作。

#include<iostream>
//#include"string.h"
using namespace std;
int main()
{
    char str[10];
    str[9] = 'w';
    memset(str,97,9);
    for(int i=0;i<10;i++){
        cout<<str[i]<<" ";
    }
    return 0;
} 
輸出:a a a a a a a a a w

注意

1.memset是以位元組為單位,初始化記憶體塊。

2.當結構體型別中包含指標時,在使用memset初始化時需要小心。

3.當結構體或類的本身或其基類中存在虛擬函式時,也需要謹慎使用memset。

相關文章