Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea
L'euro digitale è una valuta fiat che entrerà in vigore nei prossimi anni. L'obiettivo principale è quello di ridurre la dipendenza dalle piattaforme di pagamento digitali statunitensi e offrire ai cittadini un modo semplice per trasferire denaro. Anche offline, anche in maniera (pseudo)anonima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-11-2009, 18:25   #1
dvd100
Senior Member
 
L'Avatar di dvd100
 
Iscritto dal: Feb 2004
Città: Torino
Messaggi: 3236
[C] puntatore a struct il cui campo è doppio puntatore

Salve a tutti
non riesco a capire come mai questo codice vada in Segmentation fault

Codice:
typedef struct culture_ {
	char** matr;
} culture;

void main() {
	culture *test;
        test->matr = NULL;
}
Se faccio così
Codice:
void main() {
	culture test;
        test.matr = NULL;
}
tutto funziona, ma ho bisogno di un puntatore struttura.. come si fa in questi casi?
Grazie!
dvd100 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2009, 18:32   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da dvd100 Guarda i messaggi
Salve a tutti
non riesco a capire come mai questo codice vada in Segmentation fault

Codice:
typedef struct culture_ {
	char** matr;
} culture;

void main() {
	culture *test;
        test->matr = NULL;
}
Se faccio così
Codice:
void main() {
	culture test;
        test.matr = NULL;
}
tutto funziona, ma ho bisogno di un puntatore struttura.. come si fa in questi casi?
Grazie!
Il problema non e' (per ora) il doppio puntatore.
Il problema e'... lo spazio allocato.
Quel puntatore a struttura, punta a cosa?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2009, 18:46   #3
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da dvd100 Guarda i messaggi
Salve a tutti
non riesco a capire come mai questo codice vada in Segmentation fault

Codice:
typedef struct culture_ {
	char** matr;
} culture;

void main() {
	culture *test;
        test->matr = NULL;
}
Se faccio così
Codice:
void main() {
	culture test;
        test.matr = NULL;
}
tutto funziona, ma ho bisogno di un puntatore struttura.. come si fa in questi casi?
Grazie!
come giustamente suggerito da gugoxx devi allocare una variabile di tipo struct culture *
test è un puntatore, ma non punta attualmente a nulla di valido
culture *test = (struct culture *) calloc(1, sizeof(struct culture));
if (NULL != test)
{
test->matr = NULL;
...
...
free(test);
}
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2009, 18:54   #4
dvd100
Senior Member
 
L'Avatar di dvd100
 
Iscritto dal: Feb 2004
Città: Torino
Messaggi: 3236
avete ragionissima, ci vuole

Codice:
	test = (culture*) malloc( sizeof(culture*) );
in effetti era ovvio ma oggi sono abbastanza fuso

Grazie della dritta

Ultima modifica di dvd100 : 27-11-2009 alle 20:53.
dvd100 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2009, 15:24   #5
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
dopo la malloc fai un memset a 0, cvosì ripulisci l'intero contenuto del valore puntato.
o, se vuoi, vai di calloc
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Piccolo è bello: Cisco presenta A...
Z.AI avvia un data center da 1 gigawatt....
Microsoft e Mistral annunciano un accord...
Grazie al Very Large Telescope potrebbe ...
Sony FX5: RAW interno X-OCN e Open Gate ...
AMD e Anthropic, affare fatto: 5 miliard...
Cyber Arena Tour 2026, WINDTRE BUSINESS ...
Wistron ha aperto il primo stabilimento ...
"Così è facile perder...
Peak Design ripensa la staffa a L: il tr...
Samsung: ufficiale la serie Galaxy Z Fol...
Galaxy Watch Ultra2 e Watch9 ufficiali: ...
Un razzo spaziale Falcon 9 ha lanciato l...
Microlino: dal rischio di fallimento all...
SpaceX, uno stadio di Falcon 9 si schian...
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: 04:08.


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