gpt4 book ai didi

c++ - 从函数返回指向结构的指针

转载 作者:行者123 更新时间:2023-11-30 02:02:49 25 4
gpt4 key购买 nike

我正在尝试从函数返回指向我的结构的指针:

dbentry* FileReader::parseTrack(int32_t size, char *buffer) {
dbentry* track;
int cursor = 0;
//parse relevant parts
track.title = this->getFieldForMarker(cursor, size, "tsng" , buffer);
return track;
}

设置标题显然不起作用,但我不知道该怎么做,我也不知道如何从指针读取值,我尝试了一些转换,但似乎没有任何效果,我发现的大部分内容我都无法理解不知道如何申请,或者是 C.

最佳答案

您没有分配结构内存,因此您正在访问和返回没有内存地址。你需要这样的东西:

dbentry* FileReader::parseTrack(int32_t size, char *buffer)
{
dbentry* track = new dbentry;
int cursor = 0;
//parse relevant parts
track->title = this->getFieldForMarker(cursor, size, "tsng" , buffer);
return track;
}

请注意,您必须返回结构指针,因此您不想在返回时取消引用该指针,因此只需使用 return track; 而不是 return *track;.

原因是track已经是指针了。您将返回原始解决方案中指针的指针。

所以你会像这样使用函数:

dbentry* test = something->parseTrack(size, buffer);
std::cout << test->title;
delete test;

关于c++ - 从函数返回指向结构的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775409/

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