Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-02-2010, 15:36   #1
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
[C++] Errore a run time...

Salve a tutti. Questa è il codice che mi crea problemi

[code]
#include <iostream>
#include <cstring>
#include <string>
using namespace std;

const int dim = 80;

struct ind {
char nome [dim];
char cognome [dim];
char email [dim];
};


int main ()
{
int num;
int x = 0;
ind dati[num];

cout <<"Inserisci numero di indici: ";
cin >> x;

cout <<"*** FASE COMPILAZIONE DELLA LISTA INVITATI ***" <<endl;

for (num = 0; num < x; num++)
{
cout <<"Inserire nome: ";
cin >> dati[num].nome;
cout <<"Inserire cognome: ";
cin >> dati[num].cognome;
cout <<"Inserire email: ";
cin >> dati[num].email;
}

return 0;

}
[\CODE]

è solo un semplice esercizio sugli array di struct. Il problema è che in fase di compilazione non mi da nessun problema. Appena avvio il programma mi da errore di sistema.
Utilizzo NetBeans. Ho provato anche a utilizzare code blocks e dev C++.
Tutti quanti mi danno lo stesso problema.
Ho provato pure a fare un debug con dev C++ e mi dice "Errore di segmentazione" ma non capisco cosa sia.
Spero possiate aiutarmi. Grazie!
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 15:37   #2
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
Scusate ecco il codice:

Codice:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;

const int dim = 80;

struct ind {
char nome [dim];
char cognome [dim];
char email [dim];
};


int main ()
{
int num;
int x = 0;
ind dati[num];

cout <<"Inserisci numero di indici: ";
cin >> x;

cout <<"*** FASE COMPILAZIONE DELLA LISTA INVITATI ***" <<endl;

for (num = 0; num < x; num++)
{
cout <<"Inserire nome: ";
cin >> dati[num].nome;
cout <<"Inserire cognome: ";
cin >> dati[num].cognome;
cout <<"Inserire email: ";
cin >> dati[num].email;
}

return 0;

}
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 15:42   #3
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6449
Quote:
Originariamente inviato da pixie Guarda i messaggi


int main ()
{
int num;
int x = 0;
ind dati[num];
num non è inizializzato..
Unrue è online   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 15:44   #4
Ilbaama
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 376
devi inizializzare num altrimenti non sa la dimensione dell'array dati
Codice:
[...]
int main ()
{
int num;
int x = 0;
ind dati[num]; 

cout <<"Inserisci numero di indici: ";
cin >> x;

// qui metti un controllo per far sapere che x deve essere minore di num

cout <<"*** FASE COMPILAZIONE DELLA LISTA INVITATI ***" <<endl;

for (num = 0; num < x; num++)
{
cout <<"Inserire nome: ";
cin >> dati[num].nome;
cout <<"Inserire cognome: ";
cin >> dati[num].cognome;
cout <<"Inserire email: ";
cin >> dati[num].email;
}

return 0;

}
Ilbaama è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 15:50   #5
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
c ho già provato poi mi sn accorto che num viene già inizializzato nel ciclo for .. Nello specifico:
=> per x = 2;
=> mi fa inserire nome, cognome, email per il primo ciclo e solo nome e cognome per il secondo ciclo... quando è il momento di inserire l'email mi da errore di sistema.
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 15:52   #6
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6449
Quote:
Originariamente inviato da pixie Guarda i messaggi
c ho già provato poi mi sn accorto che num viene già inizializzato nel ciclo for .. Nello specifico:
=> per x = 2;
=> mi fa inserire nome, cognome, email per il primo ciclo e solo nome e cognome per il secondo ciclo... quando è il momento di inserire l'email mi da errore di sistema.
Devi inizializzarlo prima di fare:

Codice:
ind dati[num];
Altrimenti quanti elementi ha dati[] ?

Inoltre rischi comunque di sforare l'array in quanto se ad esempio num=10 e l'x inserito vale 20, fai troppi cicli uscendo dal range di dati[]. Devi controllare che l'x inserito non sia più grande di num-1, dopo aver inizializzato num prima dell'allocazione ovviamente..

Ultima modifica di Unrue : 06-02-2010 alle 15:56.
Unrue è online   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 15:56   #7
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
quindi Unrue intendi:
Codice:
int num = 0;
    int x = 0;
    ind dati[num];
Se ho capito bene intendi questo però ho spiegato che c avevo già provato in precedenza e mi da lo stesso identico errore.
pixie è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 16:01   #8
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6449
Quote:
Originariamente inviato da pixie Guarda i messaggi
quindi Unrue intendi:
Codice:
int num = 0;
    int x = 0;
    ind dati[num];
Se ho capito bene intendi questo però ho spiegato che c avevo già provato in precedenza e mi da lo stesso identico errore.

Certo che dà errore, stai cercando di allocare zero elementi..
Unrue è online   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 18:33   #9
pixie
Member
 
Iscritto dal: Apr 2006
Messaggi: 264
ok ho risolto... grz mille dell'aiuto a tutti .. a presto
pixie è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Gli obbligazionisti di Oracle intentano ...
Amazon scatenata: robot aspirapolvere, s...
007 First Light, requisiti sbagliati: IO...
Il secondo leasing sociale francese ragg...
Anche Chrome diventerà un browser...
Huawei FreeClip 2 in arrivo in Italia: c...
Honda promette la roulotte del futuro, m...
Rincari non solo per gli utenti: Intel e...
Gemini può usare i tuoi dati priv...
OPPO lancia in Italia la serie Reno15: n...
Stazione Spaziale Internazionale: rientr...
Forza Horizon 6: spunta la possibile dat...
Oral-B iO: sconti pazzeschi su spazzolin...
Intel Core Ultra 200 Plus: l'azienda pro...
Thinking Machines: la startup di Mira Mu...
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: 14:38.


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