###C++のsizeofに関して
初投稿で説明がわかりにくい部分があるかもしれませんがご了承下さい。
どうぞよろしくお願いいたします。
クラスで定義したchar型ポインタに外部関数の配列のアドレスを代入し、
そのポインタに対してsizeof()を行っても、ポインタのサイズしか返却されません。
配列のを格納しているポインタに対してsizeof関数を行って、中の全体サイズを出すことはできますでしょうか?
下の場合なら1024が出てきて欲しい所、ポインタのサイズの4しか出てきません。
###該当のソースコード
//--main.cpp #include "test.h" void main(void) { Ctest test; void* base = malloc(1024); test.Initialize(base, 1024); test.Disp(); } //--test.h class Ctest { public: char* m_pbuf; // 配列へのポインタ void Disp(void); void Initialize(const void* p, int n); }; //--test.cpp void Ctest::Initialize(const void* p, int n) { void* vp = const_cast<void*>(p); // const外す m_pbuf = (char*)vp; // void*をchar*型に変換し代入 } void Ctest::Disp(void) { // ここを何とかしたい printf("%d\n", sizeof(m_pbuf)); }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。