【发布时间】:2010-12-27 13:24:40
【问题描述】:
我想要一个可以接收字符串的堆栈。我希望能够推送和弹出字符串,以及清除整个堆栈。我认为 C++ 对此有一些方法。 C呢?
【问题讨论】:
-
您的堆栈应该复制字符串还是使用传递给它们的指针?只保存指针会容易得多,但几乎没用,除非您知道您正在使用字符串文字和/或
char *指针,其字符串不会改变,并且指针不会在它们的过程中变得无效堆栈上的“存储”。 -
堆栈应该复制字符串,因为原始字符串可能会被覆盖。
-
查找
strlen+malloc+strcpy。如果你有strdup,你可以使用它(不是 ANSI C,而是 POSIX.1),让事情变得更容易一些。在执行pop或clear时,请记住free字符串。