例如:
void Sample_Function(char * ptr){ //Stuff }
void Some_Other_Function(){
char *p;
p = malloc(sizeof(char)*5);
// Is this correct?
Sample_Function(p);
// Or this?
Sample_Function(*p);
}
由于free()接收地址而不是指向字节,我猜第一个选项是正确的吗?
此外,对于返回指针的函数:
// Is this correct?
return p;
// Or this?
return *p;
感谢您的帮助!
答案 0 :(得分:4)
p的类型为char*
,* p的类型为char
。所以Sample_Function(p)
是一个有效的电话。
如果你的职能是:
char* Some_Other_Function(){ //things}
然后,出于同样的原因,您应该返回p
而不是*p
。
答案 1 :(得分:0)
如果Sample_Function(p)
是指针,则应将其称为p
,如果Sample_Function(&a)
不是指针,则应将其称为a
。
如果函数返回一个指针,它将返回一个地址,因此您应该使用return p;
或return &a;
。