คำอธิบาย
ไลบรารี
| void *memchr(void *s, int c, size_t n) | ค้นหาตัวอักษร c ในบัฟเฟอร์ s ขนาด n ไบต์ |
| int memcmp(void *s1, void *s2, size_t n) | เปรียบเทียบบัฟเฟอร์ s1 และ s2 ขนาด n ไบต์ |
| void *memcpy(void *dest, void *src, size_t n) | คัดลอก n ไบต์จาก src ไป dest |
| void *memmove(void *dest, void *src, size_t n) | ย้าย n ไบต์จาก src ไป dest (รองรับทับซ้อน) |
| void *memset(void *s, int c, size_t n) | ตั้งค่า n ไบต์ของ s เป็นค่า c |
ข้อสังเกตสำคัญ
- ทำงานระดับไบต์ (Byte-level) ใช้ sizeof() คำนวณขนาด
- memcpy: ไม่รองรับการทับซ้อนของ src และ dest
- memmove: รองรับการทับซ้อน (ปลอดภัยกว่า)
- memcmp: เปรียบเทียบแบบ Unsigned byte คืนค่า <0, 0, >0
ตัวอย่างการใช้งาน
char src[SIZE], dest[SIZE]; int isrc[SIZE], idest[SIZE]; memcpy(dest, src, SIZE); // คัดลอก char array memcpy(idest, isrc, SIZE * sizeof(int)); // คัดลอก int array