c++ - memset操作后,array的结果为0

标签 c++ memset

<分区>

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));

根据转换结果设置每个字节:(unsigned char)INT_MIN,因为它按字节操作,而不是数组元素。

关于c++ - memset操作后,array的结果为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52949263/

相关文章:

c++ - GNUMakefile 和 gcc : resolving the order of conflicting "-std=c++" requirements

c++ - Tokyo Cabinet 面向对象的 C++ API?

c++ - 如何检查从哪里引用函数

c - 为什么 "memset(arr, -1, sizeof(arr)/sizeof(int))"不将整数数组清除为 -1?

c++ - 从给定的嵌套 boost-variant 类型创建一个新的 boost-variant 类型

C++ 未使用我自己的字符串复制函数按预期打印

c - Linux 内核从 kzalloc 取消引用 memset 中的 NULL 指针

c - 如何在二维数组中使用 memset 函数来初始化 C 中的成员?

assembly - punpcklbw(在 MMX/SSE/AVX 中交错)的用例有哪些?

c++ - 删除调用内存集?