簡體   English   中英

如何在socket上編寫通用指針?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM