Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-04-2004, 13: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, 21: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, 23: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 23:09.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2004, 07: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, 11: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


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Cloudflare: 18,2 milioni di attacchi DDo...
GeForce RTX 2080 Ti con 22 GB di VRAM: f...
Dalla padella... ai server AI: Nvidia va...
1.000 cicli e ancora il 90,4% della capa...
SMS of Death fa crashare Android senza i...
BYD Yangwang U9 Xtreme da 2.977 CV fatta...
Altro che Made in USA: cosa si nasconde ...
Binance riapre dopo il maxi furto: gli u...
Ecovacs X12 OmniCyclone crolla a 599€ (p...
Solo le cialde Nespresso Original costan...
Un nuovo materiale termoelettrico promet...
Nuova acquisizione per Apple: ingegneri ...
OpenAI ritira il taglio al Pro 200, Anth...
Polymarket, script esterno compromesso: ...
I MacBook Pro con display OLED avranno u...
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: 11:11.


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