C - dynamiczne nazwy zmiennych (tworzenie listy)

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...

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.

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:

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ść.

0

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

0

o cos takiego ci chodzi?

...

Node *wsk=0;
for(i=0;i<n;i++)
{
	wsk=(Node*)malloc(sizeof(Node));
	...
}
...
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

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:

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ść.

:|

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ć?...

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