我必須在程序中使用void**
。我正在寫下面的代碼。請指導我錯在哪裏。在C++程序中使用void **
struct kdnode
{
kdnode* lch;
int k;
void **dataptr;
kdnode* rch;
};
那麼我指定
kdnode rt;
rt.dataptr=new void*[k];
rt.dataptr[0]=new int;
也有這個取消引用參與:
*(rt->dataptr[0])=n; //n is an initialized integer value.
基本上我想空指針數組的元素分配給不同的數據類型的指針。由於編譯器拋出錯誤:
void*
不是指針,object類型
請指導我該怎麼做。
爲什麼你不使用標準庫容器,比如'std :: vector'呢? – tadman 2014-09-03 20:57:25
也許OP是與一些C API接口? – cdhowie 2014-09-03 20:57:43
您發佈的代碼中沒有違法行爲,除了'k'的缺失定義。你是否試圖在某處取消引用'rt.dataptr [0]'? – 2014-09-03 20:58:35