以下のコードが Visual Studio 2012 でコンパイルされない理由を理解するのに苦労しています。エラーは既に下のコードに埋め込まれています。スタックオブジェクトの参照と関係があると思いますが、よくわかりません。誰か助けてくれませんか?
ありがとう
#include <iostream>
typedef struct Node {
Node *next;
} Node;
void test(Node *&p) {
p=p->next;
}
void main() {
Node *p1=new Node();
test(p1); // this line compiles okay
Node p={0};
test(&p); // error C2664: 'test' : cannot convert parameter 1 from 'Node *' to 'Node *&'
}