int allocate_buffers(ICMPHeader*& send_buf, IPHeader*& recv_buf,
int packet_size)
“ICMPHeader*& send_buf” -----这个申明是什么意思? 什么时候用到?
指针的引用 还是 什么 为什么就不能 ICMPHeader* 或者 ICMPHeader &
为什么好象 C++ 没看到 *& 这个用法
对指针的引用,就是传参数的时候,直接使用原来的指针,不使用指针的副本
ICMPHeader*&
你可以这么看
typedef ICMPHeader* ICMPHeaderPtr;
typedef IPHeader* IPHeaderPtr;
int allocate_buffers(ICMPHeaderPtr& send_buf, IPHeaderPtr& recv_buf,
int packet_size)
看明白了吗?
比如我这样调用
ICMPHeader *icmpHeader=NULL;
IPHeader *ipHeader=NULL;
allocate_buffers(icmpHeader,ipHeader,255);
调用完了之后,你可以得到icmpHeader,ipHeader的有效指针。
对于ICMPHeader*,函数得不到ICMPHeader*的值
ICMPHeader & 则必须已经建立ICMPHeader的对象,问题是,这个对象是在函数中建立的。
同意