Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Afunc1.c */
- #include "analize.h"
- AT2 Aloc(size_t MP, size_t NA)
- /* aloca spatiu pentru MP persoane si NA rezultate de analize */
- {
- T2 *a;
- int i, *p;
- a = (T2 *)malloc(sizeof(T2));
- if(!a)
- return NULL;
- a->a1 = (T1 *)calloc(MP,sizeof(T1));
- if(!a->a1)
- {
- free(a);
- return NULL;
- }
- a->a3 = (int *)calloc(MP * NA,sizeof(int));
- if(!a->a3)
- {
- free(a->a1->ocup);
- free(a->a1);
- free(a);
- return NULL;
- }
- a->na = NA;
- for( i = 0, p = a->a3; i < MP; i++, p += NA )
- a->a1->aa = p;
- return a;
- }
- /*
- void Elib(AT2 *aa)
- /* elibereaza intregul spatiu ocupat d
- {
- int i;
- free((*aa)->a1->aa);
- free((*aa)->a2);
- free((*aa)->a3);
- free (aa);
- aa=NULL;
- }
- */
- int Adauga(T1 *x, char *numeprenume, char *cj, char *ocup)
- /* adauga copia sirului s, daca este posibil */
- {
- x->id = strdup(numeprenume);
- if(!x->id)
- return 0;
- x->cj = strdup(cj);
- if(!x->cj)
- {
- free(x->id);
- x->id=NULL;
- return 0;
- }
- x->ocup = strdup(ocup);
- if(!x->ocup)
- {
- free(x->id);
- free(x->cj);
- x->id=NULL;
- x->cj=NULL;
- return 0;
- }
- return 1;
- }
- int Cit(FILE* f, T2 *a)
- {
- int i = 0, j, gs;
- T1 *p;
- char numeprenume[42], cj[16], ocup[12];
- for(i =0, p = a->a1; i < (a->a1) - (a->a2), fscanf(f, "%s%s%s", numeprenume, cj, ocup) == 3; p++ )
- {
- if(!Adauga(p, numeprenume, cj, ocup))
- break;
- a->nc++;
- for(j=0; j<a->na; j++)
- fscanf(f,"%i",p->aa[j]);
- i++;
- }
- return i;
- }
- void Afi(T2 *a)
- { T1 *as;
- int *p, *s, i=0;
- for (as = a->a1; as < a->a2; as++)
- { printf("%2i. %s %-*s %s %s|", i++, as->id, 41 - strlen(as->id), as->cj, as->ocup);
- for (p = as->aa, s = p + a->na; p < s; p++)
- printf("%3i", *p);
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement