Static ??
AnaGraM
Messages postés
72
Statut
Membre
-
AnaGraM Messages postés 72 Statut Membre -
AnaGraM Messages postés 72 Statut Membre -
Bonjour,
J'ai un problème avec le mot clé static, enfin, je pense que ça vient de là.
Je développe une application avec wxWidgets et l'API C MySQL mais le problème n'est pas en rapport.
En fait, je récupère des données avec
J'ai déclaré résultat en static char *resultat;
pour pas libérer la mémoire à la fin de la fonction. Je concatène '$' au début de la chaîne pour voir où j'en suis.
Dans la partie wxWidgets, j'ai ça :
Mais quand j'affiche le résultat, devant le '$', j'ai des caractères spéciaux ...
L'adresse que je récupère ne serait pas la bonne ? Je ne comprends pas le problème...
Merci d'avance
J'ai un problème avec le mot clé static, enfin, je pense que ça vient de là.
Je développe une application avec wxWidgets et l'API C MySQL mais le problème n'est pas en rapport.
En fait, je récupère des données avec
result = mysql_store_result(connection);
resultat =(char *)malloc(1000 * sizeof(char));
strcat(resultat,"$");
while( ( row = mysql_fetch_row(result)) != NULL ) {
strcat(resultat, row[1]);
strcat(resultat, "\n");
}
J'ai déclaré résultat en static char *resultat;
pour pas libérer la mémoire à la fin de la fonction. Je concatène '$' au début de la chaîne pour voir où j'en suis.
Dans la partie wxWidgets, j'ai ça :
void MyFrame::OnTry(wxCommandEvent& WXUNUSED(event))
{
wxString msg;
char *result;
sqlgratuit cnx;
result = (char*)malloc(50*sizeof(char));
result = cnx.go();
msg.Printf( _T("%s"), result);
wxMessageBox(msg, _T("About Minimal"), wxOK | wxICON_INFORMATION, this);
}
Mais quand j'affiche le résultat, devant le '$', j'ai des caractères spéciaux ...
L'adresse que je récupère ne serait pas la bonne ? Je ne comprends pas le problème...
Merci d'avance
A voir également:
- Static ??
- Adresse IP Static fixe - Forum Bbox Bouygues
- Anti static cable lg tv - Forum Téléviseurs
- [JAVA] difference entre static et final ✓ - Forum Programmation
- Static-spartan-neu-s-msn-com.akamaized.net - Forum Windows 10
- The serializable class does not declare a static final serialversionuid field of type long ✓ - Forum Programmation
3 réponses
J'ai oublié de préciser que la première partie de code est dans une méthode go. Donc dans result = cnx.go(), je récupère le static char* resultat.
salut
2 possibilités :
1/
tu peux le déclarer en protected ou public dans l'objet
Mainframe en dehors de toute méthode, et là, pas la peine qu'il soit static, car sa durée de vie correspond à la durée de vie de ton instance de Mainframe.
2/
au lieu de faire
static char resultat =(char *)malloc(1000 * sizeof(char));
(c'est de l'allocation dynamique)
tu peux déclarer
char reslutat[1000];
comme ca, l'allocation statique etant gérée automatiquement par
le compilateur, tu n'écrase plus ta variable en ne faisant ni malloc ni free.
2 possibilités :
1/
tu peux le déclarer en protected ou public dans l'objet
Mainframe en dehors de toute méthode, et là, pas la peine qu'il soit static, car sa durée de vie correspond à la durée de vie de ton instance de Mainframe.
2/
au lieu de faire
static char resultat =(char *)malloc(1000 * sizeof(char));
(c'est de l'allocation dynamique)
tu peux déclarer
char reslutat[1000];
comme ca, l'allocation statique etant gérée automatiquement par
le compilateur, tu n'écrase plus ta variable en ne faisant ni malloc ni free.