Elmoricq Modérateur
| Code :
- char* M;
- mpz_init (message_converted);
- mpz_import(message_converted,(size_t) M.length, 1, 1, 0, 0, M.c_str());
|
M étant un pointeur, il n'a pas de "méthode" associée.
M.length() et M.c_str() n'existent pas, et "char *" est un type de base (comme int, ou float, ou n'importe quel autre type de base), ce n'est pas une structure ni **gasp** un objet (pas d'objet en C). Donc pas de type "string", si tu veux utiliser une classe string, il faut faire du C++ (et là, pas de malloc(), mais des new/delete !)
Qui plus est, dans ton exemple M n'est pas alloué. Ton pointeur est indéfini, et le comportement de mpz_import le sera tout autant.
Donc :
Code :
- /* c'est a toi de determiner "taille".
- le +1 sert a stocker le caractere de fin de chaine '\0' */
- char* M = malloc((taille+1) * sizeof *M);
- if ( M == NULL )
- {
- /* M n'est pas alloue, il faut gerer l'erreur */
- }
- else
- {
- /* ici on est sur que M est correctement alloue */
- /* <inserer du code ici qui initialise "M"> */
- mpz_init (message_converted);
- mpz_import(message_converted, strlen(M), 1, 1, 0, 0, M);
- }
- /* quand on a termine, il faut liberer la memoire allouee avec malloc() */
- free(M), M = NULL;
|
Message édité par Elmoricq le 06-06-2005 à 14:06:33
|