Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-02-2010, 14: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, 14: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, 14:42   #3
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6011
Quote:
Originariamente inviato da pixie Guarda i messaggi


int main ()
{
int num;
int x = 0;
ind dati[num];
num non è inizializzato..
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 14: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, 14: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, 14:52   #6
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6011
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 14:56.
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 14: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, 15:01   #8
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6011
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 è offline   Rispondi citando il messaggio o parte di esso
Old 06-02-2010, 17: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


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
La sorpresa di IAA Mobility è Xyt...
Le vetture elettriche Opel GSE: Mokka GS...
Star Wars: Knight of the Old Republic Re...
Scoperta un'enorme rete IPTV da pi&ugrav...
Anche Life is Strange diventerà u...
QSAN presenta la nuova serie XN1 di NAS ...
Abbiamo visto in anteprima nuova Renault...
Come ricaricare i veicoli elettrici sino...
Microsoft annuncia nuovi servizi azienda...
Roborock QV 35S spazza via lo sporco: po...
The Last of Us: arriva il primo Emmy per...
Firefox abbandona Linux a 32 bit: fine d...
Reti mobili italiane: chi vince e chi pe...
God of War: le riprese della serie TV ta...
Volkswagen ID. Cross Concept: design Pur...
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: 23:16.


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