Problème de segmentation, champs tableau

Résolu/Fermé
Adam - 31 oct. 2010 à 09:59
 Adam - 31 oct. 2010 à 11:26
Bonjour,
J'ai un petit souci en langage C++ rien de bien compliquer mais bon sachant que je suis rouiller quelques années... J'ai créer une class avec en son sein deux fonctions.
La première place tous simplement son argument dans un tableau (du moins elle essaye lol)
et La deuxieme nous affiche le contenue du tableau.
En théorie c'est simple en pratique prise de tete...
Voici la ligne de commande pour la compilation : g++ -o tmp.exe tmp.cpp
Durant la compilation aucune erreur n'est retourner et la compilation s'effectue correctement, mais lors de l'exécution j'obtient une erreur de segmentation. Voici le code :


	#define taille_tab(tab) sizeof(tab)/sizeof(tab[0])
	#include <string>
	#include <iostream> 
	#include <vector>
	using namespace std ;

	class redigeForMe
	{
			public  :
				void addLigne( const char* str ) ;
				void cc( void ) ;
				vector< string > mesChaines;
				static int counter ;
			private :
				int index ;
				int nbIns ; // nombre d'instruction archivé
				string HTMLcode ;		
	} ;

		int redigeForMe::counter = 0 ;
		void redigeForMe::addLigne( const char* str )
		{
			cout << counter << endl ;
			mesChaines[ counter ] = str ;
			counter += 1 ;
		} ;
		
		void redigeForMe::cc( void ) // Create Content
		{
				for( index = 0 ; index < counter ; index++ )
					HTMLcode += mesChaines[ index ] + "\n"  ;
			cout << HTMLcode << endl ;
		} ;



Voila son équivalent en php (en gros comment j'aurais souhaitez que sa marche)


$MesChaines = Array() ;
$HTMLCode = "" ;

function addLigne($str)
{
    global $MesChaines ;
    $MesChaines[ count( $MesChaines ) ] = $str ;
} ;

function cc()
{
    global $MesChaines ;
    global $HTMLCode ;
             for( $index = 0 ; $index < count( $MesChaines ); $index++ )
                   $HTMLCode .= $MesChaines[ $index ] ;
    echo $HTMLCode ;
} ;



Cordialement, Adam.
A voir également:

1 réponse

Bon voici la réponse :

void redigeForMe::addLigne( const char* str )
{
	cout << mesChaines.size() << endl ;
	mesChaines.push_back( string(str) );
}


il faut utilisé push_back() ;

tchaooo
0