C语言——将数组元素全部初始化
创始人
2025-06-01 20:08:38

memset() 函数

memset() 函数在 C 语言中用于将一段内存空间中的每个字节都设置为给定的值。该函数的原型定义如下:

void *memset(void *s, int c, size_t n);

其中,s 是指向要设置的内存空间的指针;c 是要设置的值,以整数形式给出;n 是要设置的字节数。

下面是一个示例程序,演示了如何使用 memset() 函数将一个字符数组中的元素都设置为 0:

#include 
#include int main()
{char str[50];/* 将 str 数组的所有元素都设置为 0 */memset(str, 0, sizeof(str));printf("str = %s\n", str);return 0;
}

在上面的示例程序中,memset() 函数将 str 数组中的所有元素都设置为 0,然后输出该数组的内容。

需要注意的是,memset() 函数是按字节设置内存的,因此在使用该函数时需要确保给定的参数类型正确。例如,如果要将一个整型数组中的元素都设置为 0,应该将 n 参数设置为数组长度乘以每个元素的字节大小,而不是数组长度。

【相关知识】

sizeof() 函数

sizeof() 函数用于获取 str 数组的大小(以字节为单位),然后将其作为 memset() 函数的第三个参数传递。sizeof() 函数是一个运算符,它可以在编译时计算给定变量或类型的大小。其语法如下:

sizeof(type)
sizeof expression

其中,type 是数据类型,例如 int、float、char 等;expression 是要计算大小的表达式,例如变量、数组、结构体等。

在本例中,sizeof(str) 计算 str 数组的大小,返回值为数组中元素的总数乘以每个元素的字节大小。因为 str 是一个 char 类型的数组,每个元素占用 1 个字节,所以 sizeof(str) 的返回值就等于数组的长度。将该值作为 memset() 函数的第三个参数传递,可以确保该函数会将整个数组都设置为指定的值,而不会留下未设置的部分。

需要注意的是,sizeof() 函数不会在运行时计算表达式的值,而是在编译时计算。因此,使用 sizeof() 函数可以确保代码在不同的平台上都能正确运行,并且避免了手动计算数组大小的错误风险。

相关内容

热门资讯

2025奇葩营销:打破物理定律... 2025年的最后一张日历即将撕下,当车市进入年度盘点时间,最该被“重点标注”的,或许不是扎堆上市的上...
从“设备AI”跨越到“个人AI... 转自 科技魔方 在AI成为关键基础能力的当下,生产力升级与交互体验再造同步发生,社会对“如何把智能真...
“从田野走向世界”晋安建区30... “从田野走向世界”晋安建区30周年主题展启幕 百幅照片见证三十年“城”长记 福州新闻网1...
再添8个国家级名片,四川生态文... 转自:四川在线四川在线记者 张蒙12月25日,生态环境部命名2025年生态文明建设示范区和“绿水青山...
格力集团与珠海安保集团签订战略... 观点网讯:12月30日,格力集团与珠海安保集团正式签订战略合作协议。双方将围绕城市安全、智慧建设、产...