c - 如何在 n*n 动态分配的矩阵中添加对角元素?

标签 c

如果矩阵是这样分配的

int **A, n;
A = (int **)malloc(n * sizeof(int));  
for (i = 0; i < n; i++) {
    A[i] = malloc(n * sizeof(int));
}

上面如何在矩阵中插入元素以及如何添加对角元素。

最佳答案

首先,您需要在此处为​​ 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 < n

因此,对角元素为 A[i][i],其中 0 <= i < n。

关于c - 如何在 n*n 动态分配的矩阵中添加对角元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54635933/

相关文章:

c - 有没有办法将 sscanf 与 stdin 一起使用?

c - 为什么我的程序在调试时崩溃了?

c - 二叉树无法打印

c - 置换 C 中的 d 维张量

python - _PyString_Resize 是否重新分配内存?

c - Linux内核 - 从其他模块调用函数时的上下文切换?

c - 在 C 中使用 select() 和 write_fds 时发送数据的正确方法

c - scanf 读取整数值的意外乘法结果

c++ - 什么决定了原始数据类型的大小?

c - 带有永不返回的 C 字符串的函数