Δημοσιεύτηκε: 18 Νοέμ 2012, 14:49
από c7p
Έχω γράψει αυτόν τον κώδικα και όταν πάω να τον τρέξω μου βγάζει "Segmentation fault (core dumped)". Έψαξα στο internet και κατάλαβα περί τίνος πρόκειται το πρόβλημα. Παρατήρησα ότι αν άλλαζα τα μέλη τις κλάσης από string σε int τότε δεν υπήρχε πρόβλημα, ωστόσο τα μέλη της κλάσης θέλω να είναι string ! Μια λογική είναι ότι τα strings δεν έχουν στάνταρ μέγεθος ωστόσο δεν βρήκα και κάποια εντολή κατά την δήλωση που να μου τα περιορίζει σε μέγεθος...
Καμιά ιδέα ;

Κώδικας: Επιλογή όλων
#include <stdlib.h>
#include <malloc.h>
#include <iostream>

using namespace std;

class voter{
private:
string name ;
string id ;
public:
voter() ;
string getid(void) {return id; }
} ;

voter::voter(){
cout << "Όνομα ψηφοφόρου: " ;
cin >> name ;
cout << "Κωδικός: " ;
cin >> id ;
}

int main(){

voter * v ;
int Voters ;

cout << "Αριθμός ψηφοφόρων: " ;
cin >> Voters ;


//πίνακας ψηφοφόρων
v = (voter *) malloc(Voters*sizeof(voter)) ;
if( v == NULL ){
cout << "Έλλειψη μνήμης (πίνακας ψηφοφόρων)" ;
exit(2) ;
}

voter vava ;
v[0] = vava ;

return 1 ;

}



Ευχαριστώ ! :)