void *memset(void *, int, size_t);
用某種位元組內容覆寫一段連續記憶體空間(維基百科說明)
memset(記憶體空間,填入數值,幾個);
遙想當年剛接觸C語言的時候,如果知道這個函式就不會傻傻地用For 迴圈把陣列資料還原了,話不多說,我們直接看下面程式碼,讓你快速明白兩者間的差異。
新手程式碼
/*This file use to record string.h library*/ #include <string.h> #include <stdio.h> #define ArraySize 10 int main() { int NumArray[ArraySize]={0,1,2,3,4,5,6,7,8,9}; int i = 0; printf("Array value\n"); for(i = 0;i<ArraySize;i++) printf("NumArray[%d]:%d\n",i,NumArray[i]); printf("Clear Array\n"); for(i = 0;i<ArraySize;i++) NumArray[i] = 0; printf("After Clear Array\n"); for(i = 0;i<ArraySize;i++) printf("NumArray[%d]:%d\n",i,NumArray[i]); return 0; }
有經驗者的程式碼
/*This file use to record string.h library*/ #include <string.h> #include <stdio.h> #define ArraySize 10 int main() { int NumArray[ArraySize]={0,1,2,3,4,5,6,7,8,9}; int i = 0; printf("Array value\n"); for(i = 0;i<ArraySize;i++) printf("NumArray[%d]:%d\n",i,NumArray[i]); printf("Clear Array\n"); memset(NumArray,0,sizeof(NumArray)); printf("After Clear Array\n"); for(i = 0;i<ArraySize;i++) printf("NumArray[%d]:%d\n",i,NumArray[i]); return 0; }
為甚麼用memset呢?主要是方便快速,再者,以後如果使用struct時綁定多個資料型態或是陣列時,可以快速初始化或是清除資料
參考資料
沒有留言:
發佈留言