在 C++ 中将 memset 设置为 INT_MAX

memset to INT_MAX in C++

我有以下代码:

int board[5][5];

memset(board, INT_MAX, sizeof(board));
//printing out INT_MAX
cout << INT_MAX << endl;

for(int r = 0; r < 5; r++) {
        for(int c = 0; c < 5; c++) {
            cout << setw(3) << board[r][c];
        }   
        cout << endl;
}

出于某种原因,我得到了数组中的所有 -1

2147483647
 -1 -1 -1 -1 -1
 -1 -1 -1 -1 -1
 -1 -1 -1 -1 -1
 -1 -1 -1 -1 -1
 -1 -1 -1 -1 -1

我该如何解释?为什么不是所有元素都设置为 INT_MAX? 当我打印 INT_MAX 时,打印出来很好。

memset() 的第二个参数是一个字节。 memset()不是用ints填充指定的内存区域,而是用单个字节。

如果您想初始化 boardint 数组,您必须使用测试程序用来打印其内容的相同类型的循环来完成。