【发布时间】:2011-02-03 13:51:13
【问题描述】:
如果我将 char * 传递给函数。然后我想将该 char * 转换为 std::string ,一旦我得到结果,将其从 std::string 转换回 char * 以显示结果。
- 我不知道如何进行转换(我说的不是 const char *,只是 char *)
- 我不知道如何操作我发送的指针的值。
所以我需要做的步骤
- 接受一个字符 *
- 将其转换为字符串。
- 获取该字符串的结果并将其以 char * 的形式放回
- 返回结果,以便该值在函数外部可用且不会被破坏。
如果可能的话,我可以看看它是如何通过引用和指针来完成的(我通过值传递其地址,但是我仍然可以修改指针指向的值。所以即使指针地址的副本在函数被破坏了,我仍然在外面看到改变的值。
谢谢!
【问题讨论】:
-
"将其从 std::string 转换回 char * 以显示结果。" - 为什么当它是一个字符串时你不能显示结果?应该能够做到 std::cout
-
这是我必须使用的界面。因此,尽管我尽可能使用字符串,但如果接口需要 char *,那么这就是我必须使用的。函数输出参数是一个 char *...这就是我必须使用的
-
在这种情况下,界面应该说一些关于内存管理的内容。我说“应该”是因为它可能不是 - 一些接口指定不明确,这是不争的事实。每当您从函数返回指针时,您需要说明谁负责分配指向的数据、它保持有效的时间以及谁负责释放它(如果适用)。如果你能解决这个问题,你就能弄清楚如何返回一个适当的指针值。
-
好吧,我只是在编写一个测试应用程序,它将为指针分配内存(因此使用该接口的人将是管理指针的人)。我的实际函数将只接受 2 个参数,其中一个需要返回一个 char * 值。所以我这样做是为了测试我将要发送的库的精神。
标签: c++