我在某些地方读过memset写入"字节方式"。
假设我有一个数组int a[100]
并且我使用memset(a,127,sizeof(a));
,每个整数的每个字节都会被分配到位集1111111
吗?
也就是说,数组的每个元素现在都会包含一个非常大的整数吗? (确切地说2139062143
)
答案 0 :(得分:3)
是的,如果您将memset()
的第三个参数更正为
memset(a, 127, sizeof(a));
答案 1 :(得分:0)
void* memset( void* dest, int ch, std::size_t count );
将值ch转换为unsigned char并将其复制到dest指向的对象的每个第一个count字符中。如果对象不是简单可复制的(例如,标量,数组或C兼容的结构),则行为是未定义的。如果count大于dest指向的对象的大小,则行为未定义。
所以,是的,每个字节都会分配111 ...