如何使用 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_n 用 n
值填充数组。
#include <algorithm>
...
std::fill_n(&arr[0][0], 100, INT_MAX);
此处值的数量可能很脆弱 - 如果您将来更改数组的大小,您必须记住将硬编码 100
更改为新的正确值。
对于快速破解来说已经足够了。如果您需要具有长期价值的东西,请将 this answer 中的想法用于类似的问题。
这是我的代码,我需要用最大尺寸(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_n 用 n
值填充数组。
#include <algorithm>
...
std::fill_n(&arr[0][0], 100, INT_MAX);
此处值的数量可能很脆弱 - 如果您将来更改数组的大小,您必须记住将硬编码 100
更改为新的正确值。
对于快速破解来说已经足够了。如果您需要具有长期价值的东西,请将 this answer 中的想法用于类似的问题。