C函数返回指针问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 02:59:40
如果我一个函数里需要返回2个指针,有办法实现么
能举例么?

typedef struct
{
int *p1;
int *p2;
}P;

方法一:
P* foo()
{
P* p=(P*)malloc(sizeof(P));
p->p1 = ...
p->p2 = ...
return p;
}
使用时P* pp=foo();
用完需要自己施放空间。free(pp);

方法二:
作为参数传入
void foo(P* p)
{
.....
p->p1 = ...
p->p2 = ...
}
使用时
P pp;
foo(&pp);

或者不用结构,直接传入2个参数
void foo(int **p1, int **p2)
{
....
*p1 = ....
*p2 = ....
}
使用时
int *a;
int *b;
foo(&a,&b);

定义一个结构体,结构体包含两个指针,返回此结构体
typedef struct two_pointer_struct
{
void *a;
void *b;
}two_pointer;
two_ponter handle(void);
实现这个函数

那就用参数吧.