C语言memset函数实现
时间: 2023-08-06 16:19:07 浏览: 106
`memset` 函数可以将一段内存空间的内容全部设置为指定的值。下面是一个简单的 `memset` 函数的实现:
```
void *memset(void *s, int c, size_t n) {
unsigned char *p = s;
while (n-- > 0) {
*p++ = (unsigned char) c;
}
return s;
}
```
该函数的参数说明如下:
- `s`:需要设置的内存空间的指针。
- `c`:需要设置的值,以整型形式传入,但只使用了最低字节的值。
- `n`:需要设置的内存空间的大小,以字节为单位。
该函数的实现非常简单,就是使用一个指针变量 `p` 指向需要设置的内存空间的起始地址,然后在循环中将每个字节都设置为指定的值 `c`,直到设置完所有的字节为止。最后返回原始的指针 `s`,以便函数调用者可以继续使用这段内存空间。
相关问题
c语言memset函数实现
C语言的memset函数用于将一段内存区域的值全部设为指定的值。实现如下:
```c
void *memset(void *s, int c, size_t n) {
unsigned char *p = s;
while (n--) {
*p++ = (unsigned char)c;
}
return s;
}
```
这里使用了指针的自增运算符,每次将值赋给当前指针指向的内存,并将指针向后移动一位,直到n为0,即全部赋值完成。注意,这里将c强制转换为unsigned char类型,是为了处理c为负数的情况。
c语言 memset函数
C语言的memset函数用于将指定的内存块设置为指定的值。它的函数原型如下:
```c
void *memset(void *s, int ch, size_t n);
```
该函数的作用是将以s内存地址为首的连续n个字节的内容置为ch。一般用来对大量结构体和数组进行清零。
以下是一个使用memset函数的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[50] = "Hello World!";
printf("Before memset: %s\n", str);
memset(str, '*', 5);
printf("After memset: %s\n", str);
return 0;
}
```
输出结果为:
```
Before memset: Hello World!
After memset: ***** World!
```
这个示例中,我们首先定义了一个字符数组str,并初始化为"Hello World!"。然后使用memset函数将str的前5个字节置为'*'。最后打印出修改后的str。
阅读全文