practico 0-ejercicio 6

practico 0-ejercicio 6

de Esteban Alexandro Gereda Batista -
Número de respuestas: 1

Hola, me sale como error segmentation fault, y no se como arreglarlo. 

Codigo:

#include <stdio.h>
void ordenar(int*A ,int largo){
    int min;
    for (int i=0;i<largo-1;i++){
        min=i;
        for(int j=i+1;j<largo;j++){
            if(min>A[j]){
                min=j;
            }
        }
        int swap=A[i];
        A[i]=A[min];
        A[min]=swap;
    }
}
int main(){
    int*B[10];
    *B[0]=2;
    *B[1]=6;
    *B[2]=7;
    *B[3]=8;
    *B[4]=0;
    *B[5]=1;
    *B[6]=4;
    *B[7]=9;
    *B[8]=5;
    *B[9]=3;
    ordenar(*B,10);
    printf("(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)/n",*B[0],*B[1],*B[2],*B[3],*B[4],*B[5],*B[6],*B[7],*B[8],*B[9]);
}

En respuesta a Esteban Alexandro Gereda Batista

Re: practico 0-ejercicio 6

de Gaston Notte -
Hola Esteban,

Para crear un arreglo de enteros utilizando puntero, debes solicitar memoria.
En el main prueba haciendo:
int *B = new int[10];
B[0]=2;
...
ordenar(B,10);

También puedes invocar la operación indicando la dirección de memoria de la primera posición del arreglo:
ordenar(&B[0],10);

Por último, revisa tu operación, no ordena correctamente.

Saludos