C语言实现memset
时间: 2023-08-15 09:13:48 浏览: 169
下面是一个简单的示例,展示了如何使用C语言来实现memset函数的功能:
```c
void* my_memset(void* ptr, int value, size_t num) {
unsigned char* p = (unsigned char*)ptr;
for (size_t i = 0; i < num; i++) {
*p++ = (unsigned char)value;
}
return ptr;
}
```
在这个自定义的my_memset函数中,我们将ptr强制转换为unsigned char*类型的指针,并使用一个循环将每个字节设置为value。最后,返回设置后的指针ptr。
你可以使用这个自定义的my_memset函数来实现与memset相同的功能。例如:
```c
#include <stdio.h>
void* my_memset(void* ptr, int value, size_t num) {
unsigned char* p = (unsigned char*)ptr;
for (size_t i = 0; i < num; i++) {
*p++ = (unsigned char)value;
}
return ptr;
}
int main() {
int arr[5];
my_memset(arr, 0, sizeof(arr));
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:0 0 0 0 0
在这个示例中,我们使用自定义的my_memset函数将整型数组arr中的每个元素都设置为0,与使用memset函数得到的结果相同。
阅读全文