La création d'une pile de chaînes de caractères en C

Je veux avoir une pile qui prend des chaînes de caractères. Je veux être en mesure de push et pop de cordes à l'extérieur, ainsi que d'effacer l'ensemble de la pile. Je pense que C++ a quelques méthodes pour cela. Ce qui sur le C?

Si votre pile de copie de chaînes ou utiliser les pointeurs passés? Il est beaucoup plus facile avec juste de sauver les pointeurs, mais presque inutile, sauf si vous savez que vous travaillez avec des littéraux de chaîne et/ou char * pointeurs dont les chaînes ne vont pas changer, et les pointeurs ne va pas le devenir non valide lors de leur "stockage" sur la pile.
La pile doit copier les chaînes, parce que les chaînes d'origine peuvent être remplacés.
Rechercher strlen + malloc + strcpy. Si vous avez strdup, vous pouvez l'utiliser (pas en C ANSI, mais est POSIX.1), rendre les choses un peu plus facile pour vous. N'oubliez pas de free les cordes lorsque vous faites pop ou clear.

OriginalL'auteur neuromancer | 2009-12-17