如何使用 memset 填充数组的最大值?

How to use memset to fill in max value for an array?

这是我的代码,我需要用最大尺寸(INT_MAX)填充二维数组中的每个元素,但是我的代码无法正常工作?

#include <iostream>
#include <string.h>
#include <limits.h>
using namespace std;
int main(){
    int arr[10][10];
    memset(arr,INT_MAX, sizeof (arr));
    cout << arr[0][3];
//output = -1 instead of 2147483647


}

如何修改我的代码,以便能够用最大值填充数组?

C++ 标准库有一个函数 fill_nn 值填充数组。

#include <algorithm>
...
std::fill_n(&arr[0][0], 100, INT_MAX);

此处值的数量可能很脆弱 - 如果您将来更改数组的大小,您必须记住将硬编码 100 更改为新的正确值。

对于快速破解来说已经足够了。如果您需要具有长期价值的东西,请将 this answer 中的想法用于类似的问题。