用c创建一个1920*864的二维数组并全赋初值为0
时间: 2024-05-13 21:20:40 浏览: 142
以下是用C语言创建一个1920*864的二维数组并全赋初值为0的代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int row = 1920, col = 864;
int **arr = (int **)malloc(row * sizeof(int *));
for(int i=0; i<row; i++)
{
arr[i] = (int *)calloc(col, sizeof(int));
}
// 打印数组
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
// 释放内存
for(int i=0; i<row; i++)
{
free(arr[i]);
}
free(arr);
return 0;
}
```
上述代码中,我们首先定义了二维数组的行列数,然后动态分配内存空间,使用calloc函数将数组元素全部初始化为0。接着,我们打印出数组内容,最后在程序结束时释放内存。
相关问题
c语言二维数组赋初值
在C语言中,可以使用以下方式为二维数组赋初值:
```c
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
```
上述代码创建了一个2行3列的二维数组,并将其初始化为{{1, 2, 3}, {4, 5, 6}}。其中,第一个大括号中的元素表示第一行的值,第二个大括号中的元素表示第二行的值。
如果只为部分元素赋值,可以使用以下方式:
```c
int arr[2][3] = {{1, 2}, {4}};
```
上述代码创建了一个2行3列的二维数组,并将其初始化为{{1, 2, 0}, {4, 0, 0}}。其中,第一个大括号中的元素表示第一行的值,第二个大括号中的元素表示第二行的值。如果某个元素没有赋值,则默认为0。
如何在C语言中创建并初始化一个二维数组?
在C语言中,创建并初始化一个二维数组需要两步:先声明数组,然后分配内存并赋初值。这里以一个整型二维数组为例说明:
```c
// 声明二维数组
int rows, cols; // 表示数组的行数和列数
scanf("%d %d", &rows, &cols); // 用户输入行数和列数
// 分配内存
int arr[rows][cols]; // 数组名,后面跟方括号,第一个[]内是行数,第二个[]内是列数
// 初始化数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = 0; // 初始化所有元素为0,可以根据需要替换为其他初始值
printf("arr[%d][%d] = %d\n", i, j, arr[i][j]); // 打印当前位置及其值
}
}
```
上述代码首先通过`scanf`函数获取用户输入的行数和列数,然后动态地创建了一个指定大小的二维数组,并将每个元素初始化为0。若要初始化其他值,只需更改`arr[i][j] = 0`这句。
注意:对于较大的数组,直接使用这种方法可能会导致栈溢出,此时应考虑使用动态内存分配(如`malloc`)来创建数组。
阅读全文