Conversion de char* en int, oui mais...

Babloutre Messages postés 3 Statut Membre -  
Babloutre Messages postés 3 Statut Membre -
Bonjour,

Je suis face à un problème qui commence a me prendre la tête, je vous explique.
Dans mon code, je dispose de plusieurs constantes telles que cons ma_constante=0;

D'un autre coté, j'ai à disposition des variables comme char *var="ma_constante".

Pour finir, j'ai un tableau de char* nommé Table.

Ce que je voudrai, c'est à parti de la variable var décrite plus haut, afficher le contenu de Table[ma_constante], soit Table[0].

J'ai essayé des choses du genre :

char *var="ma_constante";

int num;

sscanf(var, "%d", &num);

printf("%s",Table[num]);


...mais sans succès.

Pouvez vous m'aider ?

Merci

2 réponses

tatou_38 Messages postés 1937 Date d'inscription   Statut Membre Dernière intervention   121
 
1. char *var="ma_constante"; ==> var est une chaîne de char mais en zone "code" (pour faire simple, c'est une constante.
Tu devrais faire plutôt faire :

char *var;
var = malloc( 20 );
strcpy( var,"ma_constante");

Maintenant var est une chaîne de caractère, placée en zone "données" que tu peux modifier à ta guise (attention ici tu n'as aloué que 20 octets, gare aux débordements !!!

2. pour pouvoir écrire "printf("%s",Table[num]);", il faut que Table[num] soit une chaîne de characrtères et que num soit compris entre 0 et la valeur dimensionnant ta table Table. Si c'est ce que tu veux, il eut fallu déclarer Table de la façon suivante :

char *Table[10] ;
Table[0] = malloc(10);
Table[1] = malloc(10);
Table[2] = malloc(10);
...
Table[n-1] = malloc(10);
Table[n] = malloc(10);

Compris ?
0
Babloutre Messages postés 3 Statut Membre
 
Merci pour ta réponse.
Je vais tester ça
0