Chcę, żeby funkcja aktualizowała pole struktury o nazwie a. Kiedy chcę wyświetlić to pole po aktualizacji dostaję jakąś randomową wartość. Przy okazji powiedzcie, czy moje komentarze mają sens. Dopiero się uczę i są to takie jakby notatki, które mają pokazywać czy dobrze wszystko rozumiem.
#include <cstdio>
#include <string>
#include <iostream>
using namespace std;
//LISTA JEDNOKIERUNKOWA POWIĄZANA
//"szablon" elementu
struct element
{
int a;
element* NextElement; //CHYBA tak można, bo kompilator rozumie, że to jest tylko szablon, dlatego dopuszcza niezainicjalizowany wskaźnik?
};
//zmienna, która jest wskaźnikiem na początek listy
element* w_lista = NULL;
//funkcja, która tworzy nowy element listy
element* create(int b, element* NewElement)
{
NewElement = new element; //stworzenie nowego elementu i przypisanie go do wskaźnika na niego
NewElement->a = b;
w_lista = NewElement; //w ten sposób element jest pierwszy na liście
NewElement->NextElement = w_lista; //wskaźnik na "nową" mniejszą listę
//jakby to był NULL i trzeba byłoby dodać nowy element to nie dostanę
//się już do tego pola, by zaktualizować je, by wskazywało na następny nowy element
//to nie jest lista dwukierunkowa
return w_lista; //funkcja zwraca całą zaktualizowaną listę obiektowi, który ją wywołał
}
int main()
{
element* zaktualizowanyElement = new element;
create(10, zaktualizowanyElement);
cout << zaktualizowanyElement->a;
return 0;
}