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
Configuration: Linux
Firefox 2.0.0.8

2 réponses

  1. tatou_38 Messages postés 1220 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
  2. Babloutre Messages postés 3 Statut Membre
     
    Merci pour ta réponse.
    Je vais tester ça
    0