gpt4 book ai didi

c++ - 为什么指向数组的指针无法返回为 **

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:39 24 4
gpt4 key购买 nike

我不明白为什么以下失败:

#include<string>
class Foo
{
public:
std::string** GetStr(){return str;}

private:
std::string * str[10];
};

谢谢

最佳答案

首先,您将其标记为 C++ 和 C。它是哪个? C 没有字符串类。如果是 C++,请去掉 C 标签,这是误导(它们不是同一种语言!)。

编辑:我误解了你的意思。你的方法应该编译。您只需要记住取消引用返回的 str 即可获取字符串。

我很少处理双重间接寻址,但你必须做这样的事情来设置字符串:

*(*str) = "STR"; //or
*(str[i]) = "STR";

我不知道您将如何在这里使用地址运算符,因为它返回一个引用而不是一个指针。

设置str数组中的字符串。你的方法真的很奇怪。问题是编译器不知道您要取消引用字符串,因此它会尝试取消引用 char*。

虽然我不明白你为什么要这样做。这样做会更好:

std::string str[10];
std::string* GetStr() { return str; }

关于c++ - 为什么指向数组的指针无法返回为 **,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1235286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com