在 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()
不是用int
s填充指定的内存区域,而是用单个字节。
如果您想初始化 board
的 int
数组,您必须使用测试程序用来打印其内容的相同类型的循环来完成。
我有以下代码:
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()
不是用int
s填充指定的内存区域,而是用单个字节。
如果您想初始化 board
的 int
数组,您必须使用测试程序用来打印其内容的相同类型的循环来完成。