c语言实现向内存读写数据
时间: 2023-09-02 11:07:36 浏览: 157
C语言提供了一些函数用于向内存读写数据。其中,常用的包括:
1. `memcpy`:用于内存拷贝,将源地址的一段内存数据复制到目标地址的一段内存空间中。
2. `memset`:用于内存清零,将目标地址的一段内存空间中的所有字节设置为指定的值。
3. `memmove`:用于内存移动,可以处理源地址与目标地址重叠的情况。
4. `malloc`:用于动态分配内存,返回指向分配内存起始地址的指针。
5. `free`:用于释放动态分配的内存。
下面是一些示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char str[20];
int num = 123;
double pi = 3.1415926;
void *ptr;
// 使用memcpy函数将整数num拷贝到内存中
memcpy(str, &num, sizeof(int));
printf("%d %d %d %d\n", str[0], str[1], str[2], str[3]);
// 使用memset函数将内存清零
memset(str, 0, sizeof(str));
printf("%s\n", str);
// 使用memcpy函数将浮点数pi拷贝到内存中
memcpy(str, &pi, sizeof(double));
printf("%f %f %f %f %f %f %f %f\n", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]);
// 使用malloc函数动态分配内存
ptr = malloc(100);
if (ptr) {
printf("Memory allocation succeeded.\n");
// 使用memcpy函数向动态分配的内存中写入数据
memcpy(ptr, "Hello, world!", 14);
printf("%s\n", (char *)ptr);
// 使用free函数释放动态分配的内存
free(ptr);
} else {
printf("Memory allocation failed.\n");
}
return 0;
}
```
在以上代码中,我们使用了memcpy函数将整数和浮点数分别拷贝到了内存中,并使用memset函数将内存清零。另外,我们使用了malloc函数动态分配了100字节的内存,并使用memcpy函数向其中写入了字符串。最后,我们使用free函数释放了动态分配的内存。
阅读全文