W jaki sposób stworzyć dynamiczną tablicę struktur?

0
#include <stdio.h>
#include <stdlib.h>

struct Teams{
    char name[20];
    int wins,los,goalsl,goalss;

}nw,ne,sw,se;

void ar(struct Teams *nazwa){
    int x;
    printf("Ile druzyn?\n");
    scanf("%d",&x);
    nazwa =malloc(x*sizeof(struct Teams));
    for(int i=0; i<x;i++){
        scanf("%s",&nazwa[i].name);
    }
}

void print(struct Teams *nazwa){
     for(int i=0; i<4; i++){
         printf("%s\n",nazwa[i].name);
     }
}

int main()
{
   struct Teams *nw,*ne,*sw,*se;


    ar(&nw);
    print(nw);


    return 0;
}

Cześć!
Próbuję stworzyć dynamiczną tablicę struktur ale niestety nie działa mi to tak jak powinno. Pomożecie?

0
void ar(struct Teams *&nazwa){
    int x;
    printf("Ile druzyn?\n");
    scanf("%d",&x);
    nazwa =malloc(x*sizeof(struct Teams));
    for(int i=0; i<x;i++){
        scanf("%s",&nazwa[i].name);
    }
}

zostało zmienione to:

void ar(struct Teams *&nazwa)

aby było przekazywanie przez referencje ale wyskakują błedy ze związane z "nazwa"

0

Piszesz w C, więc nie możesz użyć referencji. Zwracaj wskaźnik lub użyj wskaźnika na wskaźnik.

0

chcę właśnie aby do funkcji przekazac wskaznik typu struct Teams i operowac juz w funkcji na tym adresie. stworzyc dynamiczna tablice struktur itp ale nie działa mi to nadal :/

0

Tak jak mówię: przekaż wskaźnik do wskaźnika, albo zwróć nowy. Nie masz innej sensownej opcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1