Am o problema cu structuri. Cine ma poaote ajuta?
Last Updated: Jan 16 2017 18:01, Started by
Chimie19
, Jan 16 2017 13:56
·
0
#1
Posted 16 January 2017 - 13:56
Buna ziua! Am o problema cu structuri. Cine ma poaote ajuta?
Enuntul problemei este mai jos. Codul de pana acum arata asa: #include <string.h> #include <stdlib.h> typedef struct { char* mesaj; char[256] destinatar; unsigned long timestamp; } TMesaj; typedef struct { TMesaj* mesaje; int nrMaxMesaje; int nrCrtMesaje; char* sursa; } TLog; int alocare(int nr_mesaje) { TLog *str_mesaje; str_mesaje = calloc(nr_mesaje, sizeof(TLog)); return 0; } int scriere(FILE* binar, int nr_mesaje) { int i; TLog *str_mesaje alocare(nr_mesaje, str_mesaje); for (i = 0, i < nr_mesaje; i++) { f(&str_mesaje[i].mesaje.mesaj, sizeof(char), 1, binar); fread(&str_mesaje[i].mesaje.destinatar, sizeof(char), 1, binar); fread(&str_mesaje[i].mesaje.timestamp, sizeof(unsigned long), 1, binar); fread(&str_mesaje[i].nrMaxMesaje, sizeof(int), 1, binar); fread(&str_mesaje[i].nrCrtMesaje, sizeof(int), 1, binar); fread(&str_mesaje[i].sursa, sizeof(char), 1, binar); } return 0; } int bubble_sort(TLog *str_mesaje, int nr) { int i; TLog aux; for (i = 0; i < nr-1; i++) { if (str_mesaje[i].mesaje.destinatar > str_mesaje[i+1].mesaje.destinatar) { aux=str_mesaje[i]; str_mesaje[i]=str_mesaje[i+1]; str_mesaje[i+1]=aux; /*aux.mesaje.mesaj=str_mesaje[i].mesaje.mesaj; aux.mesaje.destinatar=str_mesaje[i].mesaje.destinatar; aux.mesaje.timestamp=str_mesaje[i].mesaje.timestamp; aux.nrMaxMesaje=str_mesaje[i].nrMaxMesaje; aux.nrCrtMesaje=str_mesaje[i].nrCrtMesaje; aux.sursa=str_mesaje[i].sursa; str_mesaje[i].mesaje.mesaj=str_mesaje[i+1].mesaje.mesaj; str_mesaje[i].mesaje.destinatar=str_mesaje[i+1].mesaje.destinatar; str_mesaje[i].mesaje.timestamp=str_mesaje[i+1].mesaje.timestamp; str_mesaje[i].nrMaxMesaje=str_mesaje[i+1].nrMaxMesaje; str_mesaje[i].nrCrtMesaje=str_mesaje[i+1].nrCrtMesaje; str_mesaje[i].sursa=str_mesaje[i+1].sursa; str_mesaje[i+1].mesaje.mesaj=aux.mesaje.mesaj; str_mesaje[i+1].mesaje.destinatar=aux.mesaje.destinatar; str_mesaje[i+1].mesaje.timestamp=aux.mesaje.timestamp; str_mesaje[i+1].nrMaxMesaje=aux.nrMaxMesaje; str_mesaje[i+1].nrCrtMesaje=aux.nrCrtMesaje; str_mesaje[i+1].sursa=aux.sursa;*/ } return 0; } void* mesaj(char* destinatar, unsigned long t1, unsigned long t2, int nr) { //pp ca vectorul de structuri este sortat int i, count = 0; for (i = 0; i < nr; i++) { if ((str_mesaje[i].mesaje.timestamp>t1)&&(str_mesaje[i].mesaje.timestamp<t2)) count++; else return (NULL); } int free(TLog *str_mesaje) { free(str_mesaje); return 0; } int main() { int nr_mesaje = 0; scanf("%d", nr_mesaje); char binar = "binar"; FILE* bi = fopen(binar, "rb"); scriere(bi, nr_mesaje); fclose(bi); return 0; } Attached FilesEdited by dani.user, 16 January 2017 - 18:00. |
#2
Posted 16 January 2017 - 18:01
Cine te poate ajuta cu ce mai exact? Face codul ce trebuie? Da vreo eroare?
|
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users