C里函数声明中使用结构体数组指针怎么写? 10
有结构体如下:typedefstructtagFileList{intfNo;char*fName;intfOffset;intfSize;intfType;}myFil...
有结构体如下:
typedef struct tagFileList
{
int fNo;
char *fName;
int fOffset;
int fSize;
int fType;
} myFileList;
我想在函数里使用结构体数组,如下声明可以吗?:
int FileList::query(int num,myFileList *fl)
{
statement...;
}
类FileList里有私有结构体数组(myFileList *) calloc (i, sizeof(myFileList))
然后在其他函数里调用这个类方法函数的时候不去定义数组了,直接定义一个结构体变量,把序号num变量传递进去以后调用方法,然后类方法返回序号num对应的结构体数组内容
这里具体应该如何实现?
数组操作我想完全用指针来操作,所以使用了calloc,我的结构体数组很大,不想他全部放到栈内存里去,所以用calloc来放到堆内存里,这样应该不会让编译出来的代码太臃肿吧 展开
typedef struct tagFileList
{
int fNo;
char *fName;
int fOffset;
int fSize;
int fType;
} myFileList;
我想在函数里使用结构体数组,如下声明可以吗?:
int FileList::query(int num,myFileList *fl)
{
statement...;
}
类FileList里有私有结构体数组(myFileList *) calloc (i, sizeof(myFileList))
然后在其他函数里调用这个类方法函数的时候不去定义数组了,直接定义一个结构体变量,把序号num变量传递进去以后调用方法,然后类方法返回序号num对应的结构体数组内容
这里具体应该如何实现?
数组操作我想完全用指针来操作,所以使用了calloc,我的结构体数组很大,不想他全部放到栈内存里去,所以用calloc来放到堆内存里,这样应该不会让编译出来的代码太臃肿吧 展开
2个回答
展开全部
typedef struct tagFileList
{
int fNo;
char *fName;
int fOffset;
int fSize;
int fType;
} myFileList;
class FileList{
public:
FileList(int n){
pfile = new myFileList[n];
for(int i = 0; i < n; i ++){
pfile[i].fNo = i;
}
}
~FileList(){delete []pfile; }
public:
int query(int num,myFileList *fl){
*fl = *(pfile + num);
return 0;
}
private:
myFileList *pfile;
};
int main()
{
FileList flist(10);
myFileList fout;
flist.query(3,&fout);
cout<<fout.fNo<<endl;
return 0;
}
请问,是这种感觉么?
{
int fNo;
char *fName;
int fOffset;
int fSize;
int fType;
} myFileList;
class FileList{
public:
FileList(int n){
pfile = new myFileList[n];
for(int i = 0; i < n; i ++){
pfile[i].fNo = i;
}
}
~FileList(){delete []pfile; }
public:
int query(int num,myFileList *fl){
*fl = *(pfile + num);
return 0;
}
private:
myFileList *pfile;
};
int main()
{
FileList flist(10);
myFileList fout;
flist.query(3,&fout);
cout<<fout.fNo<<endl;
return 0;
}
请问,是这种感觉么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询