void *memset(void *dest , int c , size_t size);
// เซ็ตค่าทุกไบต์เป็น cvoid *memcpy(void *dest , void *src , size_t count);
// คัดลอกข้อมูลในหน่วยความจำจาก src ไปไว้ที่ dest จำนวน count ไบต์void *memmove(void *dest , void *src ,size_t count);
// คล้ายๆ memcpy แต่ฟังก์ชั่นนี้จะทำเขียนทับค่าที่เขียนไปแล้วได้ ( overlapping blocks)- memset ทำงานได้ดีเฉพาะการเซ็ตค่าของ char ฟังก์ชั่นนี้ไม่เหมาะสำหรับการตั้งค่าอาเรย์ของ int , float ,double.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#define MAX 30 | |
int main(void) | |
{ | |
char str[MAX]; | |
memset(str,'*',MAX); | |
str[MAX-1] = '\0'; | |
printf("%s\n",str); | |
char buf[MAX]; | |
memcpy(buf,str,MAX); | |
printf("%s\n",buf); | |
char msg[] = "123456789"; | |
memmove(msg, msg+ 2 , 4); | |
printf("%s\n",msg); | |
return 0; | |
} |