【发布时间】:2010-01-23 18:32:45
【问题描述】:
在第一次学习 C++ 之后,我第一次将 C 用于一个类项目,所以语法让我很痛苦……基本上,我需要将一个函数给出的字符串存储到一个单独的变量中以供以后使用。
我有一个这样声明的字符数组
char foo[];
我得到的一个函数将一堆字符分配到这个数组中(或指向字符的指针?)。我可以像这样打印出存储在 foo 中的实际字符串
printf("%s", foo);
我可以像这样将它的地址存储在不同的变量中
char *bar;
bar = &foo[0];
printf("%s", foo);
在这两种情况下都可以很好地输出完整的字符串。但是,如何将此字符串存储在不同的变量中?如果 foo 发生变化,那么 bar 将不再保存我需要的字符串,因为它只是指向 foo。我想到的任何东西都会给我编译器错误,例如
warning: initialization makes pointer from integer without a cast
希望这是足够的信息。提前感谢您的帮助。
【问题讨论】:
-
感谢您的快速回答,我使用了 strdup 方法,效果很好。现在我可以回到作业的真正部分,不再担心语法。再次感谢。