10
votes

Comment créer un tableau de chaînes en C?

Je suis en train d'enseigner c depuis un livre et j'essaie de créer un puzzle croisé. Je dois faire une gamme de cordes mais continue à rencontrer des problèmes. En outre, je ne sais pas grand chose à propos de l'array ...

C'est la pièce du code: xxx

mais je continue à recevoir le message: xxx

Vous ne savez pas quel est le problème ... J'ai essayé de regarder comment faire un tableau de cordes mais sans chance

toute aide sera très appréciée ,

sam


8 commentaires

Essayez d'étudier un peu plus sur les tableaux pw1.netcom.com/~tjensen/ptr/ pointres.htm .


Au fait - Char Word1 [6] = "moelleux" - "moelleux" est en réalité de 7 caractères. En C, une chaîne est terminée avec un \ 0 - qui prend un caractère supplémentaire.


const char * arr [] = {"littéral", "string", "pointeur", "tableau"}; et notez le const .


& Mots [0] ER ... Vous ne semblez pas avoir une variable mots à ce point. Avez-vous fait une erreur de copier votre code ou de laisser quelque chose?


@teahupoo merci, je vais jeter un oeil à ça!


@Arjunsharkar Oh oui j'ai oublié \ 0, merci


@dmckee ouais vous avez raison c'est supposé être & words_array [0]


Je suppose que vous essayez de faire ce qui suit: const Char * consons mots_array [] = {"moelleux", "petit", "lapin"};


4 Réponses :


15
votes
array[0] = word1;
array[1] = word2;
array[2] = word3;

0 commentaires

7
votes

La déclaration xxx pré>

crée un tableau de trois caractères em>. Vous semblez vouloir déclarer une gamme de personnages points em>: p> xxx pré>


Vous avez un problème plus grave cependant. La déclaration p> xxx pré>

crée un tableau de six caractères, mais vous le direz en fait d'avoir sept em> caractère. Toutes les chaînes ont un caractère supplémentaire, '\ 0' code>, qui est utilisé pour indiquer la fin de la chaîne. P>

déclarent que la matrice soit de taille sept: p >

char word1 [] ="fluffy";


0 commentaires

8
votes

Si vous avez besoin d'un tableau de chaînes. Il y a deux manières:

1. Barcade de caractères Deux dimensions forte> p>

Dans ce cas, vous devrez connaître la taille de vos chaînes à l'avance. On dirait ci-dessous: p> xxx pré>

2. Un tableau de pointeurs de caractères strong> p>

On dirait ci-dessous: p>

// In this case you have an array of 10 character pointers 
// and you will have to allocate memory dynamically for each string.
char *arr[10];

// This allocates a memory for 50 characters.
// You'll need to allocate memory for each element of the array.
arr[1] = malloc(50 *sizeof(char));


0 commentaires

4
votes

Vous pouvez également utiliser masloc () pour allouer la mémoire manuellement: xxx

Si vous ne le savez pas à l'avance (au moment de la codage) Combien de cordes Soyez dans un tableau et à quel point ils seront longueux, c'est un moyen d'aller. Mais vous devrez libérer la mémoire quand elle n'est plus utilisée (appelez gratuit () ).


0 commentaires