在ANSI C中,struct **variable
是什么意思?例如:
typedef struct estructuraPersona{
char nombre[30];
char apellido[30];
} tyPersona;
typedef tyPersona *ptrTyPersona;
ptrTyPersona functionFive(ptrTyPersona *ptrPtrTyPersona) {
ptrTyPersona *pptP= (ptrTyPersona *)malloc(sizeof(tyPersona));
if (*pptP == NULL) {
printf("Error al crear nuevo nodo!");
return NULL;
}
return pptP;
}
编译代码时出错。
答案 0 :(得分:0)
待办事项
ptrTyPersona* functionFive(ptrTyPersona *ptrPtrTyPersona){
而不是
ptrTyPersona functionFive(ptrTyPersona *ptrPtrTyPersona){
答案 1 :(得分:0)
此功能
ptrTyPersona functionFive(ptrTyPersona *ptrPtrTyPersona){
ptrTyPersona *pptP= (ptrTyPersona *)malloc(sizeof(tyPersona));
if(*pptP == NULL){
printf("Error al crear nuevo nodo!");
return NULL;
}
return pptP;
}
没有意义,因为没有使用参数ptrPtrTyPersona
。
我可以怀疑该功能应该执行以下操作
ptrTyPersona functionFive(ptrTyPersona *ptrPtrTyPersona){
*ptrPtrTyPersona = ( ptrTyPersona )malloc(sizeof(tyPersona));
if(*ptrPtrTyPersona == NULL){
printf("Error al crear nuevo nodo!");
}
return *ptrPtrTyPersona;
}
对于原始函数,函数返回类型为ptrTyPersona
,但函数返回pptP
类型的指针ptrTyPersona *
在本声明中
ptrTyPersona *pptP= (ptrTyPersona *)malloc(sizeof(tyPersona));
有分配结构tyPersona所以你应该使用类型为ptrTyPersona
的指针来引用已分配的内存但你使用类型为ptrTyPersona *
的指针