使用 memset()
函數
#define SIZE 100
// eg1. 初始化一個大小為 100 的字符數組
// memset 執行后的效果是將 test 數組的元素全部初始化為 0
void func1()
{
char test[SIZE];
memset(test, 0, SIZE);
}
// eg2. 初始化一個 int 類型的數組
void func2()
{
int test1[SIZE];
memset(test1, 0, sizeof(int) * SIZE); // 這里的 SIZE 是數組大小, 需要多少替換下就可以了
}
C 語言庫函數 - memset()
使用 memset()
需要引入頭文件 #include <string.h>
描述
C 庫函數 void *memset(void *str, int c, size_t n)
復制字符 c(一個無符號字符)到參數 str 所指向的字符串的前 n 個字符。
聲明
void *memset(void *str, int c, size_t n)
參數
- str -- 指向要填充的內存塊。
- c -- 要被設置的值。該值以 int 形式傳遞,但是函數在填充內存塊時是使用該值的無符號字符形式。
- n -- 要被設置為該值的字符數。
返回值
該值返回一個指向存儲區 str 的指針。
使用 {0}
初始化
這種方法可能存在兼容性問題. 效率和 memset
類似, 較高.
#define SIZE 100
void func()
{
char test[SIZE] = {0};
}
使用 for
循環
效率最低.
#define SIZE 100
void func()
{
int i = 0;
char test[SIZE];
for (i = 0; i < SIZE; i++)
{
test[i] = 0;
}
}
參考: https://www.cnblogs.com/fnlingnzb-learner/p/8057257.html