網頁

2009年3月18日 星期三

簡述memset , memcpy

簡述C函數memset , memcpy

18 則留言:

  1. memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為『 '或『\0';例:char a[100];memset(a, '\0', sizeof(a));

    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。

    回覆刪除
  2. memcpy用法:
    void *memcpy( void *dest, const void *src, size_t count );

    從src copy count bytes到dest

    example : 從board1的位址 copy 64*sizeof(int) bytes到board2的位址

    memset用法:
    void *memset( void *dest, int c, size_t count );

    從dest開始的連續count bytes, 每個byte的值都設為c

    example : 從board1的位址開始連續64*sizeof(int) bytes都設為0

    回覆刪除
  3. void *memcpy( void *dest, const void *src, size_t count );

    從src copy count bytes到dest

    example : 從board1的位址 copy 64*sizeof(int) bytes到board2的位址



    void *memset( void *dest, int c, size_t count );

    從dest開始的連續count bytes, 每個byte的值都設為c

    example : 從board1的位址開始連續64*sizeof(int) bytes都設為0

    回覆刪除
  4. memcpy
    原型:extern void *memcpy(void *dest, void *src, unsigned int count);

    功能:由src所指內存區域複製count個字節到dest所指內存區域。
    說明:src和dest所指內存區域不能重疊,函數返回指向dest的指針。
    memset
    原型:extern void *memset(void *buffer, int c, int count);

    功能:把buffer所指內存區域的前count個字節設置成字符c。
    說明:返回指向buffer的指針。

    memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為『 』或『\0』;例:char a[100];memset(a, '\0', sizeof(a));

    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。

    回覆刪除
  5. memcpy和memset的用法

    void *memcpy( void *dest, const void *src, size_t count );

    從src copy count bytes到dest

    example : 從board1的位址 copy 64*sizeof(int) bytes到board2的位址



    void *memset( void *dest, int c, size_t count );

    從dest開始的連續count bytes, 每個byte的值都設為c

    example : 從board1的位址開始連續64*sizeof(int) bytes都設為0

    回覆刪除
  6. 例如:void *memcpy( void *dest, const void *src, size_t count );

    是從src copy count bytes到dest,example :是從board1的位址 copy 64*sizeof(int) bytes到board2的位址

    例如:void *memset( void *dest, int c, size_t count );

    是從dest開始的連續count bytes,而每個byte的值都設為c,example :是從board1的位址開始連續64*sizeof(int) bytes都設為0

    memset則是把某段記憶體的每個byte都設為某個值

    回覆刪除
  7. memcpy
    原型:extern void *memcpy(void *dest, void *src, unsigned int count);
    功能:由src所指內存區域複製count個字節到dest所指內存區域。
    說明:src和dest所指內存區域不能重疊,函數返回指向dest的指針。
    memset
    原型:extern void *memset(void *buffer, int c, int count);
    功能:把buffer所指內存區域的前count個字節設置成字符c。
    說明:返回指向buffer的指針。

    memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為『 』或『\0』;例:char a[100];memset(a, '\0', sizeof(a));

    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。

    回覆刪除
  8. memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為『 '或『\0';例:char a[100];memset(a, '\0', sizeof(a));

    memset
    原型:extern void *memset(void *buffer, int c, int count);
    用法:#i nclude
    功能:把buffer所指內存區域的前count個字節設置成字符c。
    說明:返回指向buffer的指針



    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。

    memcpy
    原型:extern void *memcpy(void *dest, void *src, unsigned int count);
    用法:#include < string.h >
    功能:由src所指記憶體區域複製count個字節到dest所指記憶體區域。
    說明:src和dest所指記憶體區域不能重疊,函數返回指向dest的指針。可以拿它拷貝任何數據類型的對象。


    來源:http://chris701203.pixnet.net/blog/post/21889224

    回覆刪除
  9. memset(Number,'\0',4);
    意思就是把Number的值變成'\0',會用到的情況大致上都是對宣告為char的變數
    因為在C與C++裡面字串的結尾需要'\0',才能知道此字串結束,會用到memset函數
    的情況大部分為必須重複使用Number的變數,所以必須先清空原先的值;其實簡單的說
    也可以是清空的意思~
    memcpy-複製字串的語法
    ex:
    char str1[100];
    char str2[100];
    char str3[100];

    memset(str3,0,sizeof(str3));
    memcpy(str3,(void *)(str1[start1]),qty1);
    memcpy((void*)(str3[qty1]),(void *)(str2[start2]),qty2);

    回覆刪除
  10. memset()會將參數s所指的內存區域前n個字節以參數c填入,然後返回指向s的指針。在編寫程序時,若需要將某一數組作初始化,memset()會相當方便。


    memccpy()用來拷貝src所指的內存內容前n個字節到dest所指的地址上。與memcpy()不同的是,memccpy()會在複製時檢查參數c是否出現,若是則返回dest中值為c的下一個字節地址。

    回覆刪除
  11. memcpy
    原型:extern void *memcpy(void *dest, void *src, unsigned int count);
    功能:由src所指內存區域複製count個字節到dest所指內存區域。
    說明:src和dest所指內存區域不能重疊,函數返回指向dest的指針。
    memset
    原型:extern void *memset(void *buffer, int c, int count);
    功能:把buffer所指內存區域的前count個字節設置成字符c。
    說明:返回指向buffer的指針。

    memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為『 』或『\0』;例:char a[100];memset(a, '\0', sizeof(a));

    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。

    回覆刪除
  12. memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為『 '或『\0';例:char a[100];memset(a, '\0', sizeof(a)); /

    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;例:char a[100],b[50]; memcpy(b, a, sizeof(b))

    memcpy
    原型:extern void *memcpy(void *dest, void *src, unsigned int count);
    用法:include string.h
    功能:由src所指記憶體區域複製count個字節到dest所指記憶體區域。
    說明:src和dest所指記憶體區域不能重疊,函數返回指向dest的指針。可以拿它拷貝任何數據類型的對象。

    舉例:char a[100],b[50] memcpyb, a, sizeofb注意如用sizeof(a),會造成b的記憶體地址溢出。

    memset
    原型:extern void *memset(voidbuffer, int c, intcount);
    用法:#include string.h
    功能:把buffer所指記憶體區域的前count個字節設置成字符c。
    說明:返回指向buffer的指針。用來對一段記憶體空間全部設置為某個字符。

    回覆刪除
  13. memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為『 '或『\0';
    例:char a[100];memset(a, '\0', sizeof(a));

    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;
    例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。

    回覆刪除
  14. memset的深刻内涵:用來對一段内存空間全部設置為某個字串,一般用在對定義的字串進行初始化為‘ ’或‘\0’;
    例:char a[100];memset(a, \0, sizeof(a));

    memcpy用來做内存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;
    例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的内存地址溢出。

    回覆刪除
  15. memset用來對一段內存空間全部設置為某個字符,一般用在對定義的字符串進行初始化為' '或'';
    例:char a[100];memset(a, '', sizeof( a));

    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;
    例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),會造成b的內存地址溢出。

    回覆刪除
  16. memcpy
    功能:由src所指記憶體區域複製count個字節到dest所指記憶體區域。
    說明:src和dest所指記憶體區域不能重疊,函數返回指向dest的指針。可以拿它拷貝任何數據類型的對象。

    memset
    功能:把buffer所指記憶體區域的前count個字節設置成字符c。
    說明:返回指向buffer的指針。用來對一段記憶體空間全部設置為某個字符。
    memset可以方便的清空一個結構類型的變數或數組。

    回覆刪除
  17. memset則是把某段記憶體的每個byte都設為某個值
    void *memset(void *dest, int c, size_t count);
    memcpy用來做內存拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度;void *memcpy( void *dest, const void *src, size_t count );

    從src copy count bytes到dest

    回覆刪除
  18. memset(字符串處理函數),並定義組中的的是C語言的功能。從一開始指定對象的指針指向指定的字符數,用來寫入指定的數據。

    memcpy()函數將複製到dest指向的緩衝區src指向的前n個字節。源和目標不能重疊。

    回覆刪除

HTML 編輯器