memset到C ++中的INT_MAX

时间:2016-06-13 01:38:12

标签: c++ c memset

我有以下代码:

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时,打印得很好。

1 个答案:

答案 0 :(得分:2)

memset()的第二个参数是单个字节。 memset()未使用int s填充指定的内存区域,但使用单个字节。

如果您要初始化board intclient.search<T>()数组,则必须使用测试程序用于打印其内容的相同类型的循环来执行此操作。< / p>