c - c语言中的memset函数

标签 c arrays memset

我现在正在研究memset函数,但是所有的例子都是关于char数组的,如下:

char a[100];
memset(a, 0, 100);

它会将此 char 数组中的每个元素设置为 0。

我想知道memset是否可以应用于int数组或float数组?

最佳答案

是的,它可以应用于任何内存缓冲区,但你必须输入正确的内存缓冲区大小...... memset 将任何内存缓冲区视为一系列字节,所以无论是 char intfloatdouble 等,并不重要。请记住,它不会将多字节类型设置为特定的非零值......例如:

int a[100];
memset(a, 1, sizeof(a));

不会a 的每个成员设置为值 1 ... 相反,它会设置占用的内存缓冲区中的每个字节通过a1,这意味着每个四字节int将被设置为值0x01010101,这是与 0x00000001

不同

关于c - c语言中的memset函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6816431/

相关文章:

python - 在 python 中搜索二维数组 - 最佳方法+缩进错误

c++ - 以下代码是否可能存在内存泄漏?

c++ - memset如何通过-1初始化一个整数数组?

c - 使用 getchar 在 while 循环中添加 break 语句

C编码: For loop/call by reference confusion

c - 在子进程中运行的程序不会循环

c - Memset 大步向前

c++ - 存储无效指针是否会自动执行未定义行为?

python - 使用 netcdf 创建向量到数组中

python - 将 csv 数据分组到字典数组中 - Python