C 中的指针和功能方面的麻烦



我具有这样的函数:

void getSprite(string *spriteLines[SPRITE_YSIZE]);

,然后我会呼叫这样的功能:

int main() {
    string *spriteLines[SPRITE_YSIZE];
    getSprite(spriteLines);

在这里,一切正常。但是我决定将Spritelines声明为字符串,而不是指针,因此我更改了代码:

int main() {
    string spriteLines[SPRITE_YSIZE];
    getSprite(&spriteLines);

出现错误:

error: cannot convert ‘std::__cxx11::string (*)[5] {aka std::__cxx11::basic_string<char> (*)[5]}’ to ‘std::__cxx11::string** {aka std::__cxx11::basic_string<char>**}’ for argument ‘1’ to ‘void getSprite(std::__cxx11::string**)’ getSprite(&spriteLines);

你们中有人知道为什么吗?我听不懂。

额外的数据:我正在使用Eclipse氧V1和GNU G 。

在第一个示例中,您声明了字符串指针数组。在第二个示例中,您声明了一系列字符串。两个阵列都将您的功能作为指针传递。您的错误之所以发生,是因为它们是不同的"类型"。

在第二个示例中,您需要将getprite函数更改为:

void getsprite(字符串Spritelines [sprite_ysize](

最新更新