Cześć, właśnie piszę listę jednokierunkową na wskaźnikach i generalnie to natknąłem się na kilka poważnych problemów.
Generalnie, to chciałbym móc edytować wewnątrz funkcji wskaźniki, które przesyłam do niej jako argumenty funkcji i to działa, jeżeli zarówno wskaźniki jak i obiekty na które mają pokazywać, są typu int:
#include <iostream>
using namespace std;
//////////////////////////////////////
void zmiana(int **el, int obiekt)
{
cout << reinterpret_cast<int *>(el) << endl;
*el = &obiekt;
cout << reinterpret_cast<int *>(el) << endl;
}
//////////////////////////////////////
int main()
{
int *ws = 0;
int obiekt = 5;
zmiana(&ws, obiekt);
cout << reinterpret_cast<int *>(ws) << endl;
return 0;
}
Problem pojawia się wtedy, gdy próbuje stworzyć jednokierunkową listę, nie mam pojęcia, jak wtedy wewnątrz funkcji korzystać ze wskaźników, pokazujących na inne wskaźniki typu lista, czyli struktury mające kilka składników, oto kod:
#include <iostream>
using namespace std;
//////////Struktura listy/////////////
struct list
{
int value;
list *next;
};
list *head = 0;
//////////////////////////////////////
void add_el(list **ptr, int obj)
{
if(*ptr == 0)
{
*ptr = new list;
*ptr->value = obj; // BLAD
*ptr->next = 0; // BLAD
}
else if(*ptr != 0)
{
add_el(*ptr->next, obj); // BLAD
}
}
//////////////////////////////////////
int main()
{
return 0;
}
Gdyby ktoś mógłby mi pokazać, jak w takim wypadku powinienem skorzystać z tych wskaźników, byłbym bardzo wdzięczny.