関数へのポインターを呼び出すC関数があります(bufへのポインターとbufのサイズを使用)
printf("------------------------------\n");
printf("lengh of DATA_output = %zu\n", p->tot_len);
(*myStr.OnSendData)(buf, p->tot_len);
printf("------------------------------\n");
のように定義された関数へのポインタ
typedef void (*pOnSendData)(void *buf, u16_t len);
次に、実際の C++ クラス メソッドがそのポインターを介して取得します。
void Someclass::myPOnSendData(void *buf, u16_t len) {
std::cout << " Someclass::mypOnSendData len = " << (int)len << std::endl;
//Do something
}
問題はlen
、buf
がかなり大きいことです。
出力は次のとおりです。
------------------------------
lengh of DATA_output = 42
------------------------------
Someclass::myPOnSendData len = 50512
それはどうしてですか?