我现在正在研究memset函数,但是所有的例子都是关于char数组的,如下:
char a[100];
memset(a, 0, 100);
它会将此 char 数组中的每个元素设置为 0。
我想知道memset是否可以应用于int数组或float数组?
最佳答案
是的,它可以应用于任何内存缓冲区,但你必须输入正确的内存缓冲区大小...... memset
将任何内存缓冲区视为一系列字节,所以无论是 char
、int
、float
、double
等,并不重要。请记住,它不会将多字节类型设置为特定的非零值......例如:
int a[100];
memset(a, 1, sizeof(a));
不会将 a
的每个成员设置为值 1 ... 相反,它会设置占用的内存缓冲区中的每个字节通过a
到1
,这意味着每个四字节int
将被设置为值0x01010101
,这是与 0x00000001
关于c - c语言中的memset函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6816431/