Oppure

Loading
09/05/11 15:40
mycronapoli
Ragazzi... il programma in fase di compilazione non mi da nè errori, nè warnings.
Ma allora perchè una volta compilato quando lo eseguo si blocca?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct persona{char *nome;
               char *cognome;};
typedef struct persona id;
struct partecipante{id *utente;
                    unsigned short codice;};
typedef struct partecipante Partecipante;

void ordina_conc(struct partecipante concorrente[], int n);
void val_min_ind(struct partecipante concorrente[],int n, int *indice_min);
void scambiare_ST(struct partecipante *a, struct partecipante *b);
int main()
{
    Partecipante concorrente[2];
    concorrente[0].utente->nome="Mirko";
    concorrente[0].utente->cognome="Zammartino";
    concorrente[0].codice=001;
    concorrente[1].utente->nome="Rita";
    concorrente[1].utente->cognome="Arpaia";
    concorrente[1].codice=002;
    printf("Concorrenti ordinati alfabeticamente:\n");
    ordina_conc(concorrente, 2);
    printf("Hello world!\n");
    return 0;
}

void ordina_conc(Partecipante concorrente[], int n)
{
    int i, indice_min;
    for(i=0;i<n-1;i++)
    {
        val_min_ind(&concorrente[i],n-1, &indice_min);
        scambiare_ST(&concorrente[i],&concorrente[indice_min+i]);
    }
}

void val_min_ind(Partecipante concorrente[],int n, int *indice_min)
{
    char *min_array;
    int i;
    min_array= concorrente[0].utente->cognome;
    puts("Copia effettuata\n");
    *indice_min=0;
    for (i=1;i<n;i++)
    {
        if(strcmp(concorrente[i].utente->cognome,min_array)<0)
        {
            min_array=concorrente[i].utente->cognome;
            *indice_min=i;
            puts("Scambio effettuato.\n");
        }
    }
}

void scambiare_ST(Partecipante *a, Partecipante *b)
{
    Partecipante temp;
    temp=*a;
    *a=*b;
    *b=temp;
}

Aiutatemi vi prego!!!! Sono disperatissimo!:d:d:d
aaa
09/05/11 17:42
Peppe91
Sostituisci la dichiarazione id *utente con id *utente[2] ;)
aaa