[英]ANSI C - what does struct **variable mean?
在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;
}
編譯代碼時出錯。
做
ptrTyPersona* functionFive(ptrTyPersona *ptrPtrTyPersona){
代替
ptrTyPersona functionFive(ptrTyPersona *ptrPtrTyPersona){
這個功能
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 *
類型的ptrTyPersona *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.