Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-04-2004, 12:00   #1
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
[C++] operatore freccia ( -> )

Qualcuno sà commentare con spigazione cosa le righe di questo code?
l'ho fatto io, qualcuno mi può correggere??

#include <iostream.h>

struct Lnodo { //Struttura.... bhè questo è facile
char dato; //stringa
Lnodo *succ; //punto la prima cella della struttura
};

void main () {
Lnodo *base=NULL, *p; //la prima cella è 0, *p=puntatore a che?
cout << "Introdurre una sequenza di caratteri (^Z per terminare):" << endl;
char ch; //dato stringa
while (cin.get(ch)) { //ciclo
p = new Lnodo; //p = prima cella struttura Lnodo e nuovo oggetto
p->dato = ch; // p->dato equivale a (*p).dato
// p punta a dato e prende il primo char
p->succ = base; // p punta alla locazione dell'oggetto base 0=NULL
base = p; // base (locazione)=indirizzo di p
}
while (p) {
cout << p->dato; //non lo sò
base = p; //non lo sò
p = p->succ; //non lo sò
delete base; //cancello gli oggetti creati con new
}
}


quello che non capisco è se scrivo okay mi stampa yako.
Perchè inizia al contrario?
succ è l'indirizzo della cella come p?
pure base è un puntatore alla locazione o indirizzo?
---------------

documentate voi passo passo e ben documentato
per chiarire una volta per tutte.

ho il cervello un pò bruciato!!!
okay è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2004, 20:21   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Re: [C++] operatore freccia ( -> )

#include <iostream.h>

struct Lnodo { //Struttura.... bhè questo è facile
char dato; //stringa //carattere, non stringa
Lnodo *succ; //punto la prima cella della struttura
};

void main () {
Lnodo *base=NULL, *p; //la prima cella è 0, *p=puntatore a che? //base non punta a niente, p non è inizializzato
cout << "Introdurre una sequenza di caratteri (^Z per terminare):" << endl;
char ch; //dato stringa //carattere, non stringa
while (cin.get(ch)) { //ciclo
p = new Lnodo; //viene allocata una struttura che viene puntata da p
p->dato = ch; // p->dato equivale a (*p).dato //inizializzo la struttura con il carattere letto
// p punta a dato e prende il primo char //p non punta a dato, p punta ad una struttura di tipo Lnodo
p->succ = base; // p punta alla locazione dell'oggetto base 0=NULL //p punta sempre alla struttura, succ è un membro della struttura puntata da p, base è NULL solo al primo passaggio, al successivo punta alla struttura allocata nel ciclo rpecedente
base = p; // base (locazione)=indirizzo di p //semplicemente al valore di base viene assegnato il valore di p (non l'indirizzo), in pratica ora base punta alla stessa struttura a cui punta p
}
while (p) {
cout << p->dato; //stampa il carattere contenuto nel campo dato della struttura puntata da p
base = p; //come sopra
p = p->succ; //ci si sposta alla struttura successiva (p dopo punta alls struttura successiva) puntata dal campo succ della struttura puntata da p
delete base; //cancello la strttura puntata da base, l'abbiamo già stampata
}
}


Viene stampato al contrario perchè ogni carattere digitato viene inserito in testa alla lista... Se dopo si comincia a stampare dalla testa quindi si comincerà a stampare dall'ultimo carattere inserito...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2004, 22:04   #3
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
dunque:

p = new Lnodo;
la memoria, per questa struttura viene allocata dal prg?
..... e parte dalla fine dell'ultima struttura terminante con NULL ovvero /0;.....giusto?
e comunque ogno srtuttura è un byte cioè un char..... giusto?

se questo sopra è giusto puoi dirmi perchè parte al contrario?
non riesco a capirlo......forse non comprendo while(p) in quanto non vedo ne ++ ne --, che significa while(p) forse mentre p punta a qualcosa?? puoi spigarmi??

Ultima modifica di okay : 04-04-2004 alle 22:09.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2004, 06:47   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Significa: fino a che p != 0 (NULL)...l'utlima struttura allocata ha p == NULL...
No...l'alòlocazione funziona in maniera diversa, ma non ti deve importare...scrive al contrario per il motivo che ti ho scritto sopra...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2004, 10:59   #5
Fuzzo
Senior Member
 
L'Avatar di Fuzzo
 
Iscritto dal: Nov 2002
Città: Padova
Messaggi: 2210
La tua struct nodo è formata da un campo dati char e di un puntatore al successivo nodo della lista.
Se scrivi ok e leggi ko è semplicemente perchè tratti dei caratteri e non delle stringhe, che vengono presi in considerazione singolarmente.
Esempio con OK:
- Primo carattere: O
- Aspetto della lista: base->O->NULL
- Secondo carattere: K
- Aspetto della lista: base->K->O->NULL
Se stampi la lista a partire dalla testa, base nel tuo caso, è ovvio che stampi KO e non OK
__________________
Fisso: Case Corsair Carbide 275Q PSU Seasonic Focus GX-850 MB Asus TUF GAMING X570-PLUS CPU AMD Ryzen 3900x Cooler Arctic Freezer Xtreme RAM 2*16GB G.Skill RipJaws V DDR4 3200MHz VGA EVGA GeForce RTX 2060 Super 8GB Monitor Asus VX239H SSD 2*ADATA XPG SX8200 PRO 1TB Raid0 Router Netgear DGND4000 SO Windows 10 Print&Scan Epson WF-4830 / Laptop: Lenovo L14 Gen 3 / Mobile: Pixel 7a
Fuzzo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:16.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v