如何让 函数返回一个 自定义结构的指针?

shudingbo 2002-12-11 09:15:07
struct filename{
AnsiString filename;
int imageindex;
AnsiString Src;
}FILENAME;

struct path_buf{
AnsiString filepath;
list<filename> file;
}PATH_BUF;

list<path_buf> buffSrc;

我想让函数返回一个 指向 path_buf的指针
path_buf *hanshuming(...)
{
}
编译不通过,
函数如何定义?????

...全文
141 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhxc 2003-03-14
  • 打赏
  • 举报
回复
在头文件部分:
typedef struct Recv_ud
{

}Recv;
且是紧接着#include ..的下面,不要定义在privte,public里,可以用Recv_ud做为结构体类型名,也可以用Recv做为类型名,用typedef是要定义一个同名;
trancebaby 2002-12-12
  • 打赏
  • 举报
回复
同意ThinkX。

struct filename{
AnsiString filename;
int imageindex;
AnsiString Src;
};

struct filename* checkbuf(TListView *pListView,
AnsiString FoldPath,
AnsiString name);

或者
typedef struct tagFilename
{
AnsiString filename;
int imageindex;
AnsiString Src;
}filename;

filename* checkbuf(TListView *pListView,
AnsiString FoldPath,
AnsiString name);
hifis 2002-12-12
  • 打赏
  • 举报
回复
struct filename{
AnsiString filename;
int imageindex;
AnsiString Src;
}FILENAME;

struct path_buf{
AnsiString filepath;
list<filename> file;
}PATH_BUF;

把FILENAME和PATH_BUF去掉
shudingbo 2002-12-12
  • 打赏
  • 举报
回复
checkbuf是类TForm1的一个方法!
勉励前行 2002-12-12
  • 打赏
  • 举报
回复
//---------.h
struct filename{
AnsiString filename;
int imageindex;
AnsiString Src;
};

filename *checkbuf(...);
//---------.cpp
filename* TForm1::checkbuf(...)
//這個函數你沒聲明啊,你聲明的是filename *checkbuf(...);
{
....
}
//確認一下你的checkbuf是類中的一個方法還中一個C函數。
TopCat 2002-12-12
  • 打赏
  • 举报
回复
你试试我的代码能不能通过,如果可以,我建议你检查其他方面的问题;
如果不可以,我建议你还/重装编译器

我的代码在bcc32 5.5版本编译运行通过。
shudingbo 2002-12-12
  • 打赏
  • 举报
回复
不行,我试过n次了!真不知道是什么原因!!

(害的我只有 声明几个全局变量!!使代码增长了1/5)

这到底是什么原因???????????
是符合c++标准呀!
Jiams 2002-12-12
  • 打赏
  • 举报
回复
这样申明试试:
PATH_BUF *hanshuming(...)
好象我有碰到过这种问题。
shudingbo 2002-12-12
  • 打赏
  • 举报
回复
//---------.h
struct filename{
AnsiString filename;
int imageindex;
AnsiString Src;
};

filename *checkbuf(TListView *pListView,
AnsiString FoldPath,
AnsiString name);
//---------.cpp
filename* TForm1::checkbuf(TListView *pListView,
AnsiString FoldPath,
AnsiString name)
{
....
}

错误是 Declaration syntax error。
invalid 2002-12-11
  • 打赏
  • 举报
回复
同意ThinkX。
ThinkX 2002-12-11
  • 打赏
  • 举报
回复
是不是丢了typedef??
typedef struct path_buf
{
...
} PATH_BUF;
TopCat 2002-12-11
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

struct A
{
int x, y;
};

A *GetA(int x, int y)
{
static A *temp = new A;
temp->x = x;
temp->y = y;
return temp;
}

int main()
{
A *a = GetA(10, 30);
cout << a->x << "->" << a->y << endl;
delete a;

system("PAUSE");
}

我这个程序没问题,你可能别的地方出错了吧?
shudingbo 2002-12-11
  • 打赏
  • 举报
回复
Declaration syntax error
TopCat 2002-12-11
  • 打赏
  • 举报
回复
看看你的函数实现代码吧,报什么错误?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧