Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct cica{
- char *nev;
- char *sor;
- } cica;
- cica *cicakbeker(int *meret);
- int main(){
- int meret, i = 0;
- cica *cicak = cicakbeker(&meret);
- printf("%d\n", meret);
- for(i = 0; i < meret; i++){
- printf("%s\t%s\n", cicak[i].nev, cicak[i].sor);
- }
- getchar();
- return 0;
- }
- cica *cicakbeker(int *size){
- int meret = 0, vpoz = 0;
- char temprow[101], *v = NULL;
- cica *cicak = NULL;
- memset(temprow, 0, sizeof(char) * 101);
- do{
- memset(temprow, 0, sizeof(char) * 101);
- printf("%d. cica: ",meret+1);
- scanf("%100s", temprow);
- if(strcmp(temprow, "*") == 0)
- break;
- v = strchr(temprow, ',');
- vpoz = (int) (v-temprow);
- if(meret == 0){
- cicak = (cica*) malloc(sizeof(cica) * 1);
- cicak[meret].nev = (char*) malloc(sizeof(char)*(vpoz+1));
- memset(cicak[meret].nev, 0, sizeof(char)*(vpoz+1));
- strncpy(cicak[meret].nev, temprow, vpoz);
- cicak[meret].sor = (char*) malloc(sizeof(char)*(strlen(temprow)+1));
- memset(cicak[meret].sor, 0, sizeof(char)*(strlen(temprow)+1));
- strncpy(cicak[meret].sor, temprow, strlen(temprow));
- }else{
- cica *cicakseged = NULL;
- cicakseged = (cica*) realloc(cicak, sizeof(cica) * (meret+1)); //újrafoglalás más mérettel
- if(cicakseged != NULL){
- cicak = cicakseged;
- }else{
- printf("Nincs eleg memoria!");
- getchar();
- exit(0);
- }
- cica *aktCica = &cicak[meret]; //az aktuális macska
- memset(aktCica, 0, sizeof(cica)); //nullázzuk
- aktCica->nev = (char*) malloc(sizeof(char) * (vpoz+1)); //névnek hely lefoglal
- memset(aktCica->nev, 0, sizeof(char) * (vpoz+1)); //lenulláz
- strncpy(aktCica->nev, temprow, vpoz); //átmásol
- aktCica->sor = (char*) malloc(sizeof(char) * (strlen(temprow) + 1)); //sornak hely lefoglal
- memset(aktCica->sor, 0, sizeof(char) * (strlen(temprow) + 1)); //lenulláz
- strcpy(aktCica->sor, temprow); //átmásol
- }
- meret++;
- }while(1);
- *size = meret;
- return cicak;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement