我有以下結構(具有一個typedef到結構的指針)>:如何可以寫右邊的代碼*(node_pointer)的線 - N的
typedef struct node_t* Node;
struct node_t {
int n;
Node next;
};
和一個函數中,進出口使用類型節點*以下列方式:
Node* node_pointer;
Node new_node=malloc(sizeof(*new_node));
while(node1!=NULL && node2!=NULL) {
node_pointer=((node1->n)>(node2->n) ? &node1, &node2);
new_node->n=*(node_pointer)->n;
*(node_pointer)=*(node_pointer)->next;
new_node->next=malloc(sizeof(*new_node));
new_node=new_node->next;
}
,顯然,表達式*(指針 結構的指針) - >字段是非法的。如何在保持簡單的情況下正確書寫它?
'new_node-> N = *(node_pointer) - > N;' - >>'new_node-> N =(* node_pointer) - > N;'(和另外:強烈建議不要隱藏typedefs後面的指針)額外:你malloc()兩次:一次在循環之前,一次在它內部。這對我來說看起來過於複雜;如果循環執行零次會發生什麼? – wildplasser
你試過*((node_pointer) - > n)嗎?你試圖遵從指針(抓住內容),然後指向我相信的結構中的某個東西。 –
'node_pointer =((node1-> n)>(node2-> n)?&node1,&node2);' - >>逗號可能是用作':',而你不需要所有' – wildplasser