Hirdetés

Új hozzászólás Aktív témák

  • 0xmilan

    addikt

    Üdv, láncolt listába szeretnék beolvasni fájlból.
    Így néz ki a struktúra:
    typedef struct Kerdes{
    int szint;
    char *ker, *a, *b, *c, *d;
    char valasz;
    struct Kerdes *kov;
    } Kerdes;

    és a függvény:

    Kerdes* beolvas(Kerdes *lista){
    FILE *fp;
    Kerdes *uj;
    char c;
    uj=(Kerdes*) malloc(sizeof(Kerdes));
    lista=(Kerdes*) malloc(sizeof(Kerdes));
    char tempk[256], tempa[50], tempb[50], tempc[50], tempd[50];
    fp = fopen("loim.txt", "rt");
    if (fp == NULL) printf("Nem sikerült megnyitni!");
    else{
    while(!feof(fp)){
    fscanf(fp, "%d %s %s %s %s %s %c\n", &uj->szint, tempk, tempa, tempb, tempc, tempd, &uj->valasz);
    uj->ker=(char*) malloc(strlen(tempk)*sizeof(char));
    strcpy(lista->ker,tempk);
    uj->a=(char*) malloc(strlen(tempa)*sizeof(char));
    strcpy(lista->a,tempa);
    uj->b=(char*) malloc(strlen(tempb)*sizeof(char));
    strcpy(lista->b,tempb);
    uj->c=(char*) malloc(strlen(tempc)*sizeof(char));
    strcpy(lista->c,tempc);
    uj->d=(char*) malloc(strlen(tempd)*sizeof(char));
    strcpy(lista->d,tempd);
    uj->kov=lista;
    lista=uj;
    }
    }
    fclose(fp);
    return lista;
    }

    és így hívnám meg main-ben:
    Kerdes *lista=NULL;
    beolvas(lista);

    Hiba nélkül lefut, de amint elindul, le is fagy. Mi lehet a gond?
    (életem első fájlból olvasása lenne C-ben. korábban csináltam már C#-ban, de ott ugye nem kellett a dinamikus dolgokkal szórakozni. amúgy azt az infót kaptam, hogy ha így elszáll, akkor az pointerek miatt van, de fogalmam sincs hogy hol.)

    [ Szerkesztve ]

Új hozzászólás Aktív témák