lo0ol [ Jónior ]
C++; operator ->
Haj,
mam taką prośbę. Proszę o utwierdzenie mnie w przekonaniu lub też odwleczenie od niego że działanie operatora -> na przykładzie zaprezentowanym niżej jest następujące <niżej>.
Kod trochę odchudzony:
__________________________________________________________________
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
struct stos
char dane[10];
stos *ref;
;
using namespace std;
void dodaj_element(char dodaj[10]);
stos *pointer;
stos *old;
int main()
char dane[10];
pointer=NULL;
printf("STOS FILO\n");
do
printf("Dane: ");
scanf("%s",dane);
dodaj_element(dane);
while (strcmp(dane,"&")!=0);
system("PAUSE>null");
return 0;
void dodaj_element(char dodaj[10])
old=pointer;
pointer=new stos;
strcpy(pointer->dane,dodaj);
pointer->ref=old;
__________________________________________________________________
strcpy(pointer->dane,dodaj); - Ciąg znaków zawarty w tablicy dodaj jest wstawiany do elementu struktury określonego jako "dane" znajdującego się pod adresem "pointer".
pointer->ref=old; - Do wskaźnika "ref" struktury "stos" znajdującej się pod adresem "pointer" przypisywany jest adres zapisany we wskaźniku "old".
Czy mógłby mi ktoś opisać dokładne przestawianie się wskaźników w tej strukturze dynamicznej, proszę? :D
Z góry dzięki.
lo0ol [ Jónior ]
Ok, już doszedłem ale zmiana pytania.
Na co jest utawiany pointer->ref podczas pointer=NULL;?
Czy każdy wskaźnik typu stos to dwa wskaźniki + jedna wartość? np. *pointer oraz pointer->ref?
lo0ol [ Jónior ]
Próba upa i zmiana pytania.
void dodaj_element(char dodaj[10])
old=pointer;
pointer=new stos;
strcpy(pointer->dane,dodaj);
pointer->ref=old;
Podczas wykonywania tej funkcji:
1.Old ustawia sie na wartość pointera (czyli zarówno główny wskaźnik + old->dane + old->ref ?)
2.W miejscu pointera tworzony jest nowy obiekt typu stos
3.Dane z tablicy dodaj sa wrzucane do pointer->dane
4.Pointer->ref ustawiany jest na old
Czy mógłby mi ktoś opisać bardziej obrazowo jak to jest zrobione że po drugim wywołaniu funkcji kolejna wartość jest wpisana do sąsiadującego adresu, a nie tego samego? Bo mój tok myślenia nie może do tego dojść.