This question already has an answer here:
memset to INT_MAX in C++ [duplicate]
(1个答案)
2年前关闭。
就像这样,当我使用“memset(array,-1,sizeof(array))”时,我会得到正确的结果。但是,当我使用INT_MIN而不是-1时,所有输出均为0,但INT_MIN应该为-2147483648:
输出:
results image
通过cast:(unsigned char)INT_MIN的结果设置每个字节,因为它按字节操作,而不是数组元素。
(1个答案)
2年前关闭。
int main()
{
int array[10];
memset(array, INT_MIN, sizeof(array));
cout << INT_MIN << endl;
for (int i = 0; i < 10; i++)
cout << array[i] << endl;
system("pause");
}
就像这样,当我使用“memset(array,-1,sizeof(array))”时,我会得到正确的结果。但是,当我使用INT_MIN而不是-1时,所有输出均为0,但INT_MIN应该为-2147483648:
输出:
results image
最佳答案
说明:
memset(array, INT_MIN, sizeof(array));
通过cast:(unsigned char)INT_MIN的结果设置每个字节,因为它按字节操作,而不是数组元素。
关于c++ - memset操作后,数组的结果为0 ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52949263/