C - dynamiczne nazwy zmiennych (tworzenie listy)

C - dynamiczne nazwy zmiennych (tworzenie listy)
Chev_Lucas
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 9 lat
  • Postów:50
0

Witam, potrzebuję wykonać program w C, który po naciśnięciu dowolnego znaku tworzy listę jednokierunkową, tzn. tworzy strukturę, w której pierwsze pole jako wartość przyjmuje wpisany znak, a drugie jest wskaźnikiem do kolejnej struktury, chyba, że nie podamy następnego znaku tylko wciśniemy Enter, wtedy wskaźnik przyjmuje wartość NULL.
Mam problem, bo nie wiem jak zrobić, żeby nazwać strukturę, powiedzmy coś w stylu (Obj+(char)(i)); Żeby w pętli tworzyły się nowe struktury, każda o troszkę innej nazwie różniącej się np o 1...

KA
  • Rejestracja:prawie 21 lat
  • Ostatnio:około 4 lata
  • Postów:1652
0

Czegoś nie rozumiem. Wydawać by się mogło, że jak ktoś implementuje listę jednokierunkową, to powinien wiedzieć, czym są tablice. Po drugie nawet nie sądzę żeby tablice były tu potrzebne. Ewidentnie coś źle robisz.

Chev_Lucas
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 9 lat
  • Postów:50
0

Pomijając kwestie listy i struktur. Tablice, do niczego się nie przydadzą w tym wypadku, gdyż nie wiem ile podam znaków, a więc ile będzie struktur. Może inaczej, jak wykonać coś takiego:

Kopiuj
for(i=0;i<10;i++);
struct square i; //ew. struct square char(i);

tak, aby utworzyło 10 struktór typu square o nazwach od 0 do 9? linijka tworząca struktury została napisana źle - nie wiem jak to zrobić oraz czy w ogóle jest taka możliwość.

Endrju
  • Rejestracja:około 22 lata
  • Ostatnio:ponad rok
0

Nie da się tak, w C nie ma refleksji.


"(...) otherwise, the behavior is undefined".
0

o cos takiego ci chodzi?

Kopiuj
...

Node *wsk=0;
for(i=0;i<n;i++)
{
	wsk=(Node*)malloc(sizeof(Node));
	...
}
...
Chev_Lucas
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 9 lat
  • Postów:50
0

raczej nie, alokacja pamięci, to inna sprawa...

0

nie spotkałem czegoś takiego, żeby w C można było zrobić, dynamicznie n różnych struktur.

1

chociaz wedlug mnie w tym zadaniu chodzi o cos takiego

struct Node
{
char znak
struct *Next;
}

alokacja, odpowiednie przypisanie wartosci i nara

msm
Administrator
  • Rejestracja:prawie 16 lat
  • Ostatnio:5 miesięcy
0
Chev_Lucas napisał(a)

Pomijając kwestie listy i struktur. Tablice, do niczego się nie przydadzą w tym wypadku, gdyż nie wiem ile podam znaków, a więc ile będzie struktur. Może inaczej, jak wykonać coś takiego:

Kopiuj
for(i=0;i<10;i++);
struct square i; //ew. struct square char(i);

tak, aby utworzyło 10 strukt__u__r typu square o nazwach od 0 do 9? linijka tworząca struktury została napisana źle - nie wiem jak to zrobić oraz czy w ogóle jest taka możliwość.

:|

Kopiuj
square *tabs = malloc(ilosc_tablic * sizeof(square));

// jest dynamiczne tworzenie? Jest.
// jest takie samo w używaniu jak zwykła tablica? Jest.
// są jakieś dziwne sztuczki z dynamicznym wybieraniem nazw zmiennych? Nie ma.

Chociaż nie wiem jaki związek ma to czego chcesz z zadaniem które chcesz wykonać?...

edytowany 1x, ostatnio: msm

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.