若要執行字串複製的話,可以使用strcpy()和strncpy()來達成。然而,若非字元陣列型態的該如何複製呢?一般可能會想到用迴圈一個接著一個複製過去。在string.h裡其實還提供兩個好用的函式:memcpy()和memmove(),他們的prototype分別為:
void *memcpy(void * restrict s1, const void *restrict s2, size_t n);
void *memmove(void *s1, const void *s2, size_t n);
這兩個函式都是將s2複製到s1,差別在於memcpy()是假設s1與s2沒有重疊區域,所以若將memcpy用來有重疊的區域上的話,會造成無法預期的結果。最後一個參數是總共要複製多少個Bytes。
2008年10月1日 星期三
memcpy() memmove()
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言