ネットワークで使用するバッファ クラスを作成し、副作用を使用してバッファ ポインタとサイズを取得します。クラスの getptr() 関数と同じ動作を表示する簡単なテストを作成しました。
char SomeBuffer[100];
void* getbuf(int& size) {
size = 100;
return SomeBuffer;
}
int testrecv(void* ptr, int size) {
int i = 0;//BREAKPOINT HERE
return 0;
}
int main(int argc, char**argv) {
int size;
testrecv(getbuf(size), size);
}
testrecv() 関数内から変数を表示すると、サイズはスタックに残されたランダムな値です。getbuf() の副作用のため、testrecv() のサイズを 100 にするべきではありませんか?