[英]How to write generic pointer on socket?
如何在C ++中的tcp套接字上写入void *? 特别是,我需要知道类型,否则我不知道它的数据大小?
在这个例子中,我不知道buf的数据大小:
foo(const void *buf, int socket){
int n= write(socket , buf, ???);
}
当然,您需要知道要写入的对象的大小。 您不必知道确切的类型,但至少要知道它的字节大小。 C ++无法闻到要写入的对象有多长。
如果您知道类型,只需在其上使用sizeof
运算符就可以将长度传递给您的函数。 但要确保采取sizeof
你的类型,而不是中sizeof
的一个指针类型。 即,如果您的对象类型是YourClass
,请使用sizeof(YourClass)
,而不是sizeof(YourClass*)
或甚至sizeof(void*)
!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.