Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
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


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...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Microlino: dal rischio di fallimento all...
SpaceX, uno stadio di Falcon 9 si schian...
Gli agenti di OpenAI a 10 milioni di ute...
NOW aumenta il prezzo di Premium: rincar...
Le vendite di Steam Deck sono crollate d...
Le bollette rischiano di esplodere per c...
Addio a settimane di test in laboratorio...
NVIDIA Jetson, i nuovi prezzi sono assur...
Windows 11 26H1: tutte le novità in arri...
Apple Upgrade, in arrivo un programma di...
Firefox 153 rilasciato con modifica PDF ...
L'Italia è fra i mercati pi&ugrav...
L'AI risolve un celebre problema matemat...
Anthropic, approvato in via definitiva i...
Cornici ancora più ridotte su iPh...
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: 13:47.


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