gpt4 book ai didi

C - 动态分配的段错误

转载 作者:行者123 更新时间:2023-11-30 20:14:37 25 4
gpt4 key购买 nike

我正在做这个程序来找到矩阵的鞍点(元素在其列上数量最多,同时在其行上数量最小)

所以,事情是这样的,我遇到了段错误。当使用 Windows 时,它实际上工作得很好,但是当我要在 Ubunto 上运行时,它不起作用。不幸的是,我的机器上只有 Windows,所以我无法弄清楚为什么它不工作或者哪里出了问题。

你们能帮帮我吗?请告诉我代码有什么问题,或者错误在哪里!

int main(){
int i, j, *ml, *mc, key = 1, z;
int ordem, **me;
char car;

/* ml = smallest of each row, mc = greatest of each column
* me = given matrix
* ordem = size of matrix */

scanf("%d", &ordem);

me = malloc(ordem * sizeof(int));
for(i = 0; i < ordem; i++){
me[i] = malloc(ordem * sizeof(int));
}
ml = malloc (ordem * sizeof(int));
mc = malloc (ordem * sizeof(int));

for(i = 0; i < ordem; i++){
scanf("%d", &me[i][0]);
for(j = 1; j < ordem; j++){
scanf(" %d", &me[i][j]);
}
do{
z = scanf("%c", &car);
}while ((z != EOF) && (car != '\n'));
}

如果有必要,我可以给你们剩下的代码,但我很确定错误发生在那里,无论是在 malloc 上还是在 scanf 上。

非常感谢,非常感谢任何帮助!谨致问候!

最佳答案

int **me;
me = malloc(ordem * sizeof(int));

这里有一个错误!它是:

me = malloc(ordem * sizeof(int*));

始终仔细检查您的 malloc,90% 的段错误来自这里...

关于C - 动态分配的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25787779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com