如果矩阵是这样分配的
int **A, n;
A = (int **)malloc(n * sizeof(int));
for (i = 0; i < n; i++) {
A[i] = malloc(n * sizeof(int));
}
上面介绍了如何在矩阵中插入元素以及如何添加对角元素。
答案 0 :(得分:2)
首先,您需要在此处为n
整数指针分配空间:
int **A,n;
A=(int **)malloc(n*sizeof(int *));
提示:通常,您分配分配给的变量类型是指向sizeof()
这里,您输入的类型正确:
for(i=0;i<n;i++){
A[i]=malloc(n*sizeof(int));
}
现在,您可以像这样分配元素:
A[x][y] = val;
具有0 <= x,y 因此,对角元素为A[i][i]
,其值为0 <= i
答案 1 :(得分:1)
我认为应该使用将元素初始化为0的calloc版本, 然后添加对角线元素 这是我的解决方案:
int **A,n;
A=(int **)calloc(sizeof(int*), n);
for(i=0;i<n;i++){
A[i]=calloc(sizeof(int), n);
}
// Add diagonal elements
for(i=0;i<n;i++){
A[i][i] = 1;
}