我在一些地方读到memset写的是“逐字节的”。
假设我有一个数组,int a[100],并且我使用memset(a,127,sizeof(a));,那么每个整数的每个字节都会被赋予位集1111111吗?
也就是说,数组的每个元素现在都会包含一个非常大的整数吗?(准确地说是2139062143)
发布于 2014-12-12 13:21:04
可以,如果您将memset()的第三个参数更正为
memset(a, 127, sizeof(a));发布于 2014-12-12 13:23:35
void* memset( void* dest, int ch, std::size_t count );将值ch转换为无符号字符,并将其复制到dest指向的对象的每个第一个计数字符中。如果对象不是普通可复制的(例如,标量、数组或C兼容结构),则行为是未定义的。如果count大于dest指向的对象的大小,则行为未定义。
所以,是的,每个字节都会被分配111...
https://stackoverflow.com/questions/27437312
复制相似问题