如何在C语言中正确地初始化和赋值一个二维数组?
时间: 2024-11-27 09:15:59 浏览: 20
在C语言中,初始化和赋值二维数组涉及到预定义大小的静态数组或者是动态内存分配。这里提供两种常见的情况:
1. **静态数组初始化**:
```c
#define ROWS 3
#define COLS 4
int main() {
int arr[ROWS][COLS] = { // 初始化为指定值
{1, 2, 3, 4}, // 第一行
{5, 6, 7, 8}, // 第二行
{9, 10, 11, 12} // 第三行
};
return 0;
}
```
2. **动态内存分配**(如使用`malloc`):
```c
#include <stdlib.h>
int main() {
int rows = 3, cols = 4;
int **array = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
array[i] = (int *)malloc(cols * sizeof(int)); // 动态为每一行分配空间
for (int j = 0; j < cols; j++) {
array[i][j] = i + j; // 每个单元格赋予特定值
}
}
// 使用完记得释放内存
for (int i = 0; i < rows; i++) {
free(array[i]);
}
free(array);
return 0;
}
```
记得在结束时通过`free`函数释放动态分配的内存。
阅读全文