为什么当我增加矩阵元素的值(例如 11 20 10)时出现段错误。通常我会正确地得到结果矩阵的第一行全为 0 和矩阵的第二行。有时它也会给出正确的结果。我不知道这段代码有什么问题
最佳答案
一个潜在的问题是成员变量 K
看起来可以更改:
(data->B) = malloc((data->K)*sizeof(float*));
scanf("%d%d", &(data->K), &(data->N));
for ( i=0;i<(data->K);i++)
...
它在设置数组A
时首先被初始化。然后它用于分配基本数组来保存 B
的列。但接下来的 scanf
可能会导致值不再与之前相同(可能导致内存覆盖)。
关于c - 为什么当我在 C 语言的矩阵乘法程序中增加矩阵元素的值时会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14969767/