void *memset(void *ptr, int value, size_t num);参数:立即学习“C语言免费学习笔记(深入)”;ptr:指向要填充内存块的指针。value:要填充的字节值。num:要填充的字节数。返回值:memset() 返回指向已填">

c语言函数memset怎么用

来源:这里教程网 时间:2026-02-21 16:51:10 作者:

memset() 函数详解

用途:
memset() 函数用于填充一个内存块的指定字节数。

语法:

<code class="c">void *memset(void *ptr, int value, size_t num);</code>

参数:

立即学习“C语言免费学习笔记(深入)”;

ptr:指向要填充内存块的指针。 value:要填充的字节值。 num:要填充的字节数。

返回值:
memset() 返回指向已填充内存块的指针(即 ptr)。

工作原理:
memset() 函数通过使用循环来逐个字节地填充指定的内存块。它将每个字节都设置为 value 参数指定的值。

示例:

<code class="c">// 将一个 10 个字节的数组填充为 0
char arr[10];
memset(arr, 0, sizeof(arr));
// 将一个字符串填充为 'a'
char str[] = "Hello";
memset(str, 'a', 5); // 填充前 5 个字符为 'a'</code>

注意事项:

memset() 不会检查 ptr 指向的位置是否有效,因此在使用前必须确保它指向一个有效的内存地址。 如果 num 为 0,则什么也不会填充。 如果 num 超过内存块的大小,则函数将超过内存块的边界,这可能会导致未定义的行为。

替代方案:

memset() 函数的替代方案包括:

malloc() 和 free():分配和释放内存块,并手动填充字节。 std::fill():C++ 中的函数,用于填充容器或数组。

相关推荐