分段错误(核心转储)codelite ubuntu

时间:2017-10-01 18:05:01

标签: c ubuntu segmentation-fault core codelite

我正在尝试使用冒泡排序方法来组织矩阵。 我收到一条错误,指出Segmentation fault(core dumped)。 我正在使用Ubuntu和Codelite在虚拟机上编程。希望你能帮助我。

这是代码。

#include <stdio.h>
#include <stdio.h>
#include <math.h>

int main(){

    int tam, comp, var;

    printf("Ingrese el tamano del array que va a crear:\n");
    scanf("%d", tam);

    int arr[tam];

    printf("Ingrese los elementos del array:\n");
    for(int i=0; i < tam; i++){
        printf("Elemento arr%d", i+1);
        scanf("%d", &arr[i]);        
    }

    for(int j=0; j < tam; j++){
        for(comp=0; comp<tam; comp++){

            if(arr[comp]<arr[comp+1]){

                var=arr[comp];
                arr[comp]=arr[comp + 1];
                arr[comp + 1]=var;               
            }
        }            
    }

    printf("La matriz en orden descendente es:\n");

    for(int i=0; i < tam; i++){

       printf("%d ", arr[i]);        
    }
}

1 个答案:

答案 0 :(得分:0)

以下提议的代码:

  1. 干净地编译(在linux上使用gcc)
  2. 执行所需的操作
  3. 没有错误
  4. 更正问题评论中列出的问题
  5. 正确检查I / O错误并正确地将错误消息路由到CREATE EXTENSION pg_trgm; CREATE INDEX trgm_idx ON users USING GIST (name gist_trgm_ops);
  6. 使数据与使用位置密切相关。
  7. 使用适当的水平间距以提高可读性
  8. 记录了为什么要包含每个头文件
  9. 建议使用stderr而不是puts()来表示不包含任何格式的输出。

    现在建议的代码:

    printf()