二维数组是一个表格,其中每个元素可以通过两个索引来访问,通常表示为 array[i][j]
,其中 i
是行索引,j
是列索引。对角线是数组中从左上角到右下角的元素序列,即满足 i == j
的元素。
填充对角线的操作在某些算法和数据处理中非常有用,例如初始化单位矩阵、处理图像数据等。
二维数组可以是静态分配的,也可以是动态分配的。静态分配的数组在编译时确定大小,而动态分配的数组在运行时确定大小。
以下是一个C语言程序,演示如何填充一个二维数组的对角线元素从1到n:
#include <stdio.h>
#include <stdlib.h>
void fillDiagonal(int n) {
int **array = (int **)malloc(n * sizeof(int *));
for (int i = 0; i < n; i++) {
array[i] = (int *)malloc(n * sizeof(int));
for (int j = 0; j < n; j++) {
array[i][j] = 0; // 初始化为0
}
}
for (int i = 0; i < n; i++) {
array[i][i] = i + 1; // 填充对角线元素
}
// 打印数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%3d ", array[i][j]);
}
printf("\n");
}
// 释放内存
for (int i = 0; i < n; i++) {
free(array[i]);
}
free(array);
}
int main() {
int n = 5; // 示例大小为5
fillDiagonal(n);
return 0;
}
malloc
分配内存时,可能会失败并返回 NULL
。应该检查每次分配的结果,确保没有分配失败。malloc
分配内存时,可能会失败并返回 NULL
。应该检查每次分配的结果,确保没有分配失败。malloc
分配内存后,必须使用 free
释放内存,否则会导致内存泄漏。malloc
分配内存后,必须使用 free
释放内存,否则会导致内存泄漏。通过以上方法,可以有效地填充二维数组的对角线元素,并避免常见的内存问题。
领取专属 10元无门槛券
手把手带您无忧上云