是不是可以在整数数组上使用memset?我尝试了以下memset调用,并没有在int数组中获得正确的整数值.
int arr[5];
memset (arr, -1, sizeof(arr)/sizeof(int));
Run Code Online (Sandbox Code Playgroud)
我得到的Vaules是:
arr[0] = -1
arr[1] = 255
arr[2] = 0
arr[3] = 0
arr[4] = 0
Run Code Online (Sandbox Code Playgroud) 如何用另一种(也许更短的)方式写这个?有没有更好的方法在C++中初始化已分配的数组?
int main(void) {
int* a;
a = new int[10];
for (int i=0; i < 10; ++i) a[i] = 0;
}
Run Code Online (Sandbox Code Playgroud) 在 C 中我们使用 calloc 方法时;所有保留的内存将被初始化为0.
有没有办法用另一个值初始化它而不迭代所有值?例如:
int* example = calloc(100,sizeof(int));
Run Code Online (Sandbox Code Playgroud)
这将创建一个包含 100 个零的数组,但我希望这是(例如)100 个。
我有以下代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我-1在我的数组中获取了所有s:
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
Run Code Online (Sandbox Code Playgroud)
我该如何解释?为什么不是所有元素都设置为 INT_MAX?当我打印时,INT_MAX它打印得很好。