如果我用一个返回指针的函数声明一个指针,我声明的指针与函数返回的指针相同,还是指向函数返回的指针?
示例:
typedef struct foo{
int n;
} foo;
// this function returns a pointer to a structure foo
foo* returnPointer(){
foo* tmp = malloc(sizeof(foo));
tmp->n = 1;
return tmp;
}
// if I do this, will abc be a pointer to a foo structure (the desired effect)
// or will it be a pointer to another pointer to a foo structure?
foo* abc = returnPointer();
最佳答案
abc 将是您声明的内容。指向 foo 结构的指针。该函数还返回 foo * (指向 foo 结构的指针)。所以存在类型协议(protocol)。
编辑:同样正如@phaazon所说,该函数有错误(需要malloc)。
关于c - 使用返回指针的函数声明为指针是否会导致两个指针链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40325048/