Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 15 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok NapísalOffline : 02.12.2008 20:09


Caute, mam problem so strukturou v C. Chcem vytvorit strukturu, ktora by obsahovala dynamicku premennu Priezvisko, len neviem kde mam alokovat pamat pre priezvisko:

typedef struct Student {
char *Priezvisko; //povodne: char Priezvisko[12];
//Priezvisko = (char*)malloc((sizeof(char))*12);
int ZnamkaZMatematiky;
int ZnamkaZJazyka;
struct DatumNarodenia {
int Den;
int Mesiac;
int Rok;
} datum_narodenia;
} student;


Pomozte, kto viete...


Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 02.12.2008 20:36

povedal by som, ze tesne pred pouzitim.


Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 02.09.05
Prihlásený: 17.11.10
Príspevky: 154
Témy: 1
Príspevok NapísalOffline : 02.12.2008 20:42

Predpokladam, ze struktura "student" je pouzita ako typ pola, cize napr.

Kód:
typedef struct Student {
   char *Priezvisko;

   int ZnamkaZMatematiky;
   int ZnamkaZJazyka;
   
   struct DatumNarodenia {
      int Den;
      int Mesiac;
      int Rok;
   } datum_narodenia;

} student;

student pole_studentov[25];

Vezmime si pripad, ze priezvisko nacitavame zo standartneho vstupu, teda napr.
Kód:
int main () {
   char priezvisko[255];

   scanf("%s", priezvisko);
}


A jednoducho pri nacitani daneho prieviska alokujeme potrebny priestor (teda tolko byte, kolko znakov obsahuje premenna priezvisko + 1 -> ukoncovaci znak) v pamati v strukture "student" a skopirujeme data z pomocnej premennej priezvisko:
Kód:
pole_studentov[i].Priezvisko = malloc(strlen(priezvisko)*sizeof(char) + 1);
strcpy(pole_studentov[i].Priezvisko, priezvisko);







_________________
Múdry nie je ten, čo veľa vie, ale ten, kto vie, čo je treba. (Thomas Alva Edison)
Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 02.12.2008 21:01

Opravil som to, ale stale to vypisuje chyby typu: cannot convert int to char a pod.
Kód:
int main() {
  student *A;
  int number = 5, i, priezvisko[12], dlzka = 0;

  for (i=0; i<number; i++) {
    fscanf(fp_input,"%s%d%d%d%d%d", &priezvisko /*A[i].Priezvisko*/, &A[i].ZnamkaZMatematiky, &A[i].ZnamkaZJazyka, &A[i].datum_narodenia.Den, &A[i].datum_narodenia.Mesiac, &A[i].datum_narodenia.Rok);
    printf("priezvisko:%s; mat:%d; jazyk:%d; den:%d; mesiac:%d; rok:%d\n", A[i].Priezvisko, A[i].ZnamkaZMatematiky, A[i].ZnamkaZJazyka, A[i].datum_narodenia.Den, A[i].datum_narodenia.Mesiac, A[i].datum_narodenia.Rok);
  }
  for (i=0; i<number; i++) {
    A[i].Priezvisko = malloc(strlen(priezvisko) * sizeof(char) + 1);
    strcpy(A[i].Priezvisko, priezvisko);
  }

Bez dynamickeho Priezviska mi program funguje, takze tie nacitavania su dobre...len ta alokacia


Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 02.12.2008 21:35

skus to sem hodit cele preboha, je zvlastne uz to prve nacitavanie ked nacitavas string, davas mu adresu ako pri cisle a priezvisko je pri tom aj tak pole intov, a pred mallocom ma byt pretypovanie, na aky tap ukazuje dany smernik. nechce sa mi to totiz spajat s predchadzajucou strukturou, ked neviem presne ako to je a domyslat si zvysok


Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 02.12.2008 21:40

Kód:
#include <stdio.h>
#include <string.h>
#include <alloc.h>
#include <conio.h>

typedef struct Student {
  char *Priezvisko;
  int ZnamkaZMatematiky;
  int ZnamkaZJazyka;
    struct DatumNarodenia {
      int Den;
      int Mesiac;
      int Rok;
    } datum_narodenia;
  } student;

student LepsiStudent(student* A, int size) {
  int i, vrat_poradie = 0;
  float pom = 0, pomoc = 0, max_znamka = 5;
  for (i=0; i<size; i++) {
    pomoc = (A[i].ZnamkaZMatematiky + A[i].ZnamkaZJazyka);
    pom = (pomoc / 2);
    if (pom < max_znamka) {
      max_znamka = pom;
      vrat_poradie = i;
    }
    pomoc = 0;
    pom = 0;
  }

  return A[vrat_poradie];
}

int main() {
  student *A;
  int number = 0, i, priezvisko[12], dlzka = 0;

  clrscr();
  printf("Zadaj cislo v rozsahu <2;5>: ");
  do {
    gotoxy(30,1);
    scanf("%d", &number);
  } while (number != 2 && number != 3 && number != 4 && number != 5);
  //printf("zadal si cislo: %d\n\n", number);

  printf("Alokacia pola pre %d studentov\n\n", number);
  A = (student*)malloc(number*sizeof(student));

  FILE *fp_input, *fp_output;
  char* FileNameInput =  "Student.txt";
  char* FileNameOutput = "lepsiStudent.txt";

  if ((fp_input = fopen(FileNameInput, "r")) == NULL) {
    printf("Neda sa otvorit subor %s", FileNameInput);
    return -1;
  }
  if ((fp_output = fopen(FileNameOutput, "w")) == NULL)  {
    printf("Neda sa otvorit subor %s", FileNameOutput);
    return -1;
  }


  for (i=0; i<number; i++) {
    fscanf(fp_input,"%s%d%d%d%d%d", &priezvisko /*A[i].Priezvisko*/, &A[i].ZnamkaZMatematiky, &A[i].ZnamkaZJazyka, &A[i].datum_narodenia.Den, &A[i].datum_narodenia.Mesiac, &A[i].datum_narodenia.Rok);
    printf("priezvisko:%s; mat:%d; jazyk:%d; den:%d; mesiac:%d; rok:%d\n", A[i].Priezvisko, A[i].ZnamkaZMatematiky, A[i].ZnamkaZJazyka, A[i].datum_narodenia.Den, A[i].datum_narodenia.Mesiac, A[i].datum_narodenia.Rok);
  }
  for (i=0; i<number; i++) {
    A[i].Priezvisko =(char*) malloc((strlen(priezvisko) + 1) * sizeof(char));
    strcpy(A[i].Priezvisko, priezvisko);
  }
  printf("\n\nNajlepsi student je: %s, mat: %d, jazyk: %d, den: %d, mesiac: %d, rok: %d\n", LepsiStudent(A,number).Priezvisko, LepsiStudent(A,number).ZnamkaZMatematiky, LepsiStudent(A,number).ZnamkaZJazyka, LepsiStudent(A,number).datum_narodenia.Den, LepsiStudent(A,number).datum_narodenia.Mesiac, LepsiStudent(A,number).datum_narodenia.Rok);
  fprintf(fp_output,"Najlepsi student:\n");
  fprintf(fp_output,"Priezvisko: %s\n", LepsiStudent(A,number).Priezvisko);
  fprintf(fp_output,"ZnamkaZMatematiky: %d\n", LepsiStudent(A,number).ZnamkaZMatematiky);
  fprintf(fp_output,"ZnamkaZJazyka: %d\n", LepsiStudent(A,number).ZnamkaZJazyka);
  fprintf(fp_output,"Den narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Den);
  fprintf(fp_output,"Mesiac narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Mesiac);
  fprintf(fp_output,"Rok narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Rok);
  printf("\nZapis najlepsieho studenta do suboru\n");
  printf("Pre skoncenie stlac cokolvek");

  free(A);
  fclose(fp_input);
  fclose(fp_output);

  getchar();
  getch();
  return 0;
}

este k tomu patri textovy subor student.txt s 5 polozkami (studentami)


Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 02.12.2008 21:48

tu je cely obsah suboru student.txt:
Hanusova 3 2 4 1 1986
Schrobova 1 1 5 6 1987
Jasova 2 1 6 5 1988
Koncova 2 3 8 7 1989
Pitova 4 2 9 8 1990

pouzivame borland c







_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3
Príspevok NapísalOffline : 02.12.2008 21:49

Opravil som len syntakticke chyby, ktore mi hadzal kompilator (Dev-C++), takze nezarucujem, ze program bude bezat podla tvojich predstav.
Kód:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>

typedef struct Student {
char *Priezvisko;
int ZnamkaZMatematiky;
int ZnamkaZJazyka;
struct DatumNarodenia {
int Den;
int Mesiac;
int Rok;
} datum_narodenia;
} student;

student LepsiStudent(student* A, int size) {
int i, vrat_poradie = 0;
float pom = 0, pomoc = 0, max_znamka = 5;
for (i=0; i<size; i++) {
pomoc = (A[i].ZnamkaZMatematiky + A[i].ZnamkaZJazyka);
pom = (pomoc / 2);
if (pom < max_znamka) {
max_znamka = pom;
vrat_poradie = i;
}
pomoc = 0;
pom = 0;
}

return A[vrat_poradie];
}

int main() {
student *A;
int number = 0, i, priezvisko[12], dlzka = 0;

printf("Zadaj cislo v rozsahu <2;5>: ");
do { 
scanf("%d", &number);
} while (number != 2 && number != 3 && number != 4 && number != 5);
//printf("zadal si cislo: %d\n\n", number);

printf("Alokacia pola pre %d studentov\n\n", number);
A = (student*)malloc(number*sizeof(student));

FILE *fp_input, *fp_output;
char* FileNameInput = "Student.txt";
char* FileNameOutput = "lepsiStudent.txt";

if ((fp_input = fopen(FileNameInput, "r")) == NULL) {
printf("Neda sa otvorit subor %s", FileNameInput);
return -1;
}
if ((fp_output = fopen(FileNameOutput, "w")) == NULL) {
printf("Neda sa otvorit subor %s", FileNameOutput);
return -1;
}


for (i=0; i<number; i++) {
fscanf(fp_input,"%s%d%d%d%d%d", &priezvisko /*A[i].Priezvisko*/, &A[i].ZnamkaZMatematiky, &A[i].ZnamkaZJazyka, &A[i].datum_narodenia.Den, &A[i].datum_narodenia.Mesiac, &A[i].datum_narodenia.Rok);
printf("priezvisko:%s; mat:%d; jazyk:%d; den:%d; mesiac:%d; rok:%d\n", A[i].Priezvisko, A[i].ZnamkaZMatematiky, A[i].ZnamkaZJazyka, A[i].datum_narodenia.Den, A[i].datum_narodenia.Mesiac, A[i].datum_narodenia.Rok);
}
for (i=0; i<number; i++) {
A[i].Priezvisko =(char*) malloc((strlen((const char*)priezvisko) + 1) * sizeof(char));
strcpy(A[i].Priezvisko, (const char*)priezvisko);
}
printf("\n\nNajlepsi student je: %s, mat: %d, jazyk: %d, den: %d, mesiac: %d, rok: %d\n", LepsiStudent(A,number).Priezvisko, LepsiStudent(A,number).ZnamkaZMatematiky, LepsiStudent(A,number).ZnamkaZJazyka, LepsiStudent(A,number).datum_narodenia.Den, LepsiStudent(A,number).datum_narodenia.Mesiac, LepsiStudent(A,number).datum_narodenia.Rok);
fprintf(fp_output,"Najlepsi student:\n");
fprintf(fp_output,"Priezvisko: %s\n", LepsiStudent(A,number).Priezvisko);
fprintf(fp_output,"ZnamkaZMatematiky: %d\n", LepsiStudent(A,number).ZnamkaZMatematiky);
fprintf(fp_output,"ZnamkaZJazyka: %d\n", LepsiStudent(A,number).ZnamkaZJazyka);
fprintf(fp_output,"Den narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Den);
fprintf(fp_output,"Mesiac narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Mesiac);
fprintf(fp_output,"Rok narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Rok);
printf("\nZapis najlepsieho studenta do suboru\n");
printf("Pre skoncenie stlac cokolvek");

free(A);
fclose(fp_input);
fclose(fp_output);

getchar();
getch();
return 0;
}


Pre buducnost - linky do code.

//no, ako vidim, zaslal si uz aj obsah toho suboru. Bohuzial, program spravne nefunguje, je tam nejaka logicka chyba, mozem to este skusit ceknut... :)

//prave som skusal pri vstupe zadat cislo 2 - a co sa nestalo? restartoval sa pocitac :D







_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 02.12.2008 22:02

super, uz mi nevyhadzuje chyby, :) len mi zle vypisuje, do toho priezviska mi ostane ulozene vzdy posledne priezvisko, to znamena ze kopirujem do kazdeho A[i].Priezvisko to iste priezvisko, to este treba osetrit...







_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3
Príspevok NapísalOffline : 02.12.2008 22:13

Nech sa paci. :)
Kód:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>

typedef struct Student {
        char Priezvisko[12];
        int ZnamkaZMatematiky;
        int ZnamkaZJazyka;
        struct DatumNarodenia {
               int Den;
               int Mesiac;
               int Rok;
        } datum_narodenia;
} student;

student LepsiStudent(student* A, int size) {
        int i, vrat_poradie = 0;
        float pom = 0, pomoc = 0, max_znamka = 5;
       
        for (i=0; i<size; i++) {
            pomoc = (A[i].ZnamkaZMatematiky + A[i].ZnamkaZJazyka);
            pom = (pomoc / 2);
            if (pom < max_znamka) {
               max_znamka = pom;
               vrat_poradie = i;
            }
            pomoc = 0;
            pom = 0;
        }

        return A[vrat_poradie];
}

int main(void) {
    student *A;
    int number = 0, i, priezvisko[12], dlzka = 0;

    printf("Zadaj cislo v rozsahu <2;5>: ");
    do { 
       scanf("%d", &number);
    } while (number != 2 && number != 3 && number != 4 && number != 5);

    printf("Alokacia pola pre %d studentov\n\n", number);
    A = (student*)malloc(number*sizeof(student));

    FILE *fp_input, *fp_output;
    char* FileNameInput = "Student.txt";
    char* FileNameOutput = "lepsiStudent.txt";

    if ((fp_input = fopen(FileNameInput, "r")) == NULL) {
       printf("Neda sa otvorit subor %s", FileNameInput);
       return 1;
    }
   
    if ((fp_output = fopen(FileNameOutput, "w")) == NULL) {
       printf("Neda sa otvorit subor %s", FileNameOutput);
       return 1;
    }

    for (i=0; i<number; i++) {
        fscanf(fp_input,"%11s%d%d%d%d%d", &A[i].Priezvisko, &A[i].ZnamkaZMatematiky, &A[i].ZnamkaZJazyka, &A[i].datum_narodenia.Den, &A[i].datum_narodenia.Mesiac, &A[i].datum_narodenia.Rok);
        printf("priezvisko:%s; mat:%d; jazyk:%d; den:%d; mesiac:%d; rok:%d\n", A[i].Priezvisko, A[i].ZnamkaZMatematiky, A[i].ZnamkaZJazyka, A[i].datum_narodenia.Den, A[i].datum_narodenia.Mesiac, A[i].datum_narodenia.Rok);
    }

    printf("\n\nNajlepsi student je: %s, mat: %d, jazyk: %d, den: %d, mesiac: %d, rok: %d\n", LepsiStudent(A,number).Priezvisko, LepsiStudent(A,number).ZnamkaZMatematiky, LepsiStudent(A,number).ZnamkaZJazyka, LepsiStudent(A,number).datum_narodenia.Den, LepsiStudent(A,number).datum_narodenia.Mesiac, LepsiStudent(A,number).datum_narodenia.Rok);
    fprintf(fp_output,"Najlepsi student:\n");
    fprintf(fp_output,"Priezvisko: %s\n", LepsiStudent(A,number).Priezvisko);
    fprintf(fp_output,"ZnamkaZMatematiky: %d\n", LepsiStudent(A,number).ZnamkaZMatematiky);
    fprintf(fp_output,"ZnamkaZJazyka: %d\n", LepsiStudent(A,number).ZnamkaZJazyka);
    fprintf(fp_output,"Den narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Den);
    fprintf(fp_output,"Mesiac narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Mesiac);
    fprintf(fp_output,"Rok narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Rok);
    printf("\nZapis najlepsieho studenta do suboru\n");
    printf("Pre skoncenie stlac cokolvek");

    free(A);
    fclose(fp_input);
    fclose(fp_output);

    getchar();
    getch();
    return 0;
}

A nabuduce prosim ta, dodrziavaj trochu "stabnu kulturu". :D







_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 02.12.2008 22:50

Dakujeeeem :) a co spravi %11s pri nacitavani priezvisk zo suboru, to som este nevidel? ale uloha bola spravit Priezvisko v strukture dynamicky... inak presne tak to ma fungovat, sikovny, dakujem krasne, a vedel by si spravit Priezvisko dynamicky? zeby bolo v stukture namiesto Priezvisko[12] => *Priezvisko...







_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3
Príspevok NapísalOffline : 02.12.2008 23:04

Nie je zac.:)
to %11s znamena, ze sa nacita retazec dlhy maximalne 11 znakov, takze ak by bolo priezvisko napr. starablaskova (co je 13 znakov), tak by sa ulozilo len starablasko. :D

Tu mas aj dynamicke Priezvisko. :)
Kód:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>

typedef struct Student {
        char *Priezvisko;
        int ZnamkaZMatematiky;
        int ZnamkaZJazyka;
        struct DatumNarodenia {
               int Den;
               int Mesiac;
               int Rok;
        } datum_narodenia;
} student;

student LepsiStudent(student* A, int size) {
        int i, vrat_poradie = 0;
        float pom = 0, pomoc = 0, max_znamka = 5;
       
        for (i=0; i<size; i++) {
            pomoc = (A[i].ZnamkaZMatematiky + A[i].ZnamkaZJazyka);
            pom = (pomoc / 2);
            if (pom < max_znamka) {
               max_znamka = pom;
               vrat_poradie = i;
            }
            pomoc = 0;
            pom = 0;
        }

        return A[vrat_poradie];
}

int main(void) {
    student *A;
    int number = 0, i, priezvisko[12], dlzka = 0;

    printf("Zadaj cislo v rozsahu <2;5>: ");
    do { 
       scanf("%d", &number);
    } while (number != 2 && number != 3 && number != 4 && number != 5);

    printf("Alokacia pola pre %d studentov\n\n", number);
    A = (student*)malloc(number*sizeof(student));

    FILE *fp_input, *fp_output;
    char* FileNameInput = "Student.txt";
    char* FileNameOutput = "lepsiStudent.txt";

    if ((fp_input = fopen(FileNameInput, "r")) == NULL) {
       printf("Neda sa otvorit subor %s", FileNameInput);
       return 1;
    }
   
    if ((fp_output = fopen(FileNameOutput, "w")) == NULL) {
       printf("Neda sa otvorit subor %s", FileNameOutput);
       return 1;
    }

    for (i=0; i<number; i++) {
        if ((A[i].Priezvisko=(char *)malloc(sizeof(char)*12))==NULL)
           return 1;
        fscanf(fp_input,"%11s%d%d%d%d%d", A[i].Priezvisko, &A[i].ZnamkaZMatematiky, &A[i].ZnamkaZJazyka, &A[i].datum_narodenia.Den, &A[i].datum_narodenia.Mesiac, &A[i].datum_narodenia.Rok);
        printf("priezvisko:%s; mat:%d; jazyk:%d; den:%d; mesiac:%d; rok:%d\n", A[i].Priezvisko, A[i].ZnamkaZMatematiky, A[i].ZnamkaZJazyka, A[i].datum_narodenia.Den, A[i].datum_narodenia.Mesiac, A[i].datum_narodenia.Rok);
    }

    printf("\n\nNajlepsi student je: %s, mat: %d, jazyk: %d, den: %d, mesiac: %d, rok: %d\n", LepsiStudent(A,number).Priezvisko, LepsiStudent(A,number).ZnamkaZMatematiky, LepsiStudent(A,number).ZnamkaZJazyka, LepsiStudent(A,number).datum_narodenia.Den, LepsiStudent(A,number).datum_narodenia.Mesiac, LepsiStudent(A,number).datum_narodenia.Rok);
    fprintf(fp_output,"Najlepsi student:\n");
    fprintf(fp_output,"Priezvisko: %s\n", LepsiStudent(A,number).Priezvisko);
    fprintf(fp_output,"ZnamkaZMatematiky: %d\n", LepsiStudent(A,number).ZnamkaZMatematiky);
    fprintf(fp_output,"ZnamkaZJazyka: %d\n", LepsiStudent(A,number).ZnamkaZJazyka);
    fprintf(fp_output,"Den narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Den);
    fprintf(fp_output,"Mesiac narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Mesiac);
    fprintf(fp_output,"Rok narodenia: %d\n", LepsiStudent(A,number).datum_narodenia.Rok);
    printf("\nZapis najlepsieho studenta do suboru\n");
    printf("Pre skoncenie stlac cokolvek");

    free(A);
    fclose(fp_input);
    fclose(fp_output);

    getchar();
    getch();
    return 0;
}







_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
Offline

Skúsený užívateľ
Skúsený užívateľ
Smernik v strukture C

Registrovaný: 10.07.07
Prihlásený: 02.11.17
Príspevky: 1060
Témy: 0
Bydlisko: Bratislava
Príspevok NapísalOffline : 02.12.2008 23:11

no pri "stabnej kulture"

minimalne..ak zavriem vsetky oci, aj tak
FILE *fp_input, *fp_output;
char* FileNameInput = "Student.txt";
char* FileNameOutput = "lepsiStudent.txt";

nemaju co hladat za
int main(void) {







_________________
Nebo je modre, voda je mokra...
Offline

Užívateľ
Užívateľ
Smernik v strukture C

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 02.12.2008 23:18

Cela izba na intraku ti dakujeme :) To by sme na to neprisli vymazat & pri nacitani priezviska zo suboru....vdaka







_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3
Príspevok NapísalOffline : 03.12.2008 17:32

Nie je zac. :) To je len tym, ze funckia scanf ocakava adresu, pricom hodnota pointra Priezvisko je adresa, takze sa tam & dat v takomto pripade nemoze. :)







_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
Odpovedať na tému [ Príspevkov: 15 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Vypis cesty v stromovej strukture

v PHP, ASP

4

432

26.08.2010 23:47

vladivlad Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Lazarus OOP smernik

v Delphi, Visual Basic

0

522

30.03.2014 1:56

F3RY Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zoznam a jeho smerník

v Assembler, C, C++, Pascal, Java

1

288

02.11.2012 8:19

BX Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra