memset関数の正確な使用と原理

1355 ワード

ヘッダファイル:#include
この初期化をよく使いますが、最後のエラーもそのためだとは思いませんでした.
関数のプロトタイプ
void* cb_memset(void* buffer, int b, size_t size)

この関数の後ろのパラメータにはbufferが配列またはポインタであり,bは初期化するASCLL符号値であり,sizeは初期化データのバイト長である.1文字
文字は1バイトで、もともとcharタイプの配列を初期化するのに使われていたので少しも問題ありませんが、人々はいつも他のことをするのが好きで、いつも他のことをさせたいと思っています.
初期化しました.初期化するものが0の場合、このデータ型のバイト数にかかわらず、各バイトを0に初期化します.
0の山、最後にバイナリに変換するのも0の山で、0に初期化する目的を達成しますが、他のデータ型については0に初期化するしかありません.
charの例
#include
#include
int main()
{
    char a[11]="I LOVE YOU";
    puts(a);
    memset(a,3,10*sizeof(char));
    puts(a);
    return 0;
}
//xin ASCLL 3;
// 
;
#include
#include
int main()
{
    char a[11]="I LOVE YOU";
    puts(a);
    memset(a,'*',10*sizeof(char));
    puts(a);
    return 0;
}

これでもいいです.
反例:
#include
#include
void print(int a[])
{
    int i;
    for(i=0; i<5; i++)
        printf("%d",a[i]);
    printf("
"); } int main() { int a[5]= {1,2,3,4,5}; print(a); memset(a,1,sizeof(a)); print(a); return 0; }

memsetの原型をまだ調べていないことを忘れた友达は、この初期化が万能だと思ってはいけない.結局、彼の頭のファイルは.
fill(first,last,val)はいいですね.