void* val = 0;
cout << "\n\tSelect a value to enter: "; cin >> val;
SDI::StoredData* temp = new SDI::StoredData();
temp->data = val;
ARR->insert(temp,0,false);
^這個,有效。值被存儲,我的getAllValues
功能完美。試圖設置自定義數組的空值*,只有在void *從std :: cin設置時纔會起作用
做同樣的事情,像這樣:
void* val = new int(10);
SDI::StoredData* temp = new SDI::StoredData();
temp->data = val;
ARR->insert(temp,0,false);
或
int val = 10;
void* val = &val;
SDI::StoredData* temp = new SDI::StoredData();
temp->data = val;
ARR->insert(temp,0,false);
或任何其他變化返回一個空值,爲什麼地球上會出現這種情況?是的,我知道,我不應該使用void*
,但這是一個要求。謝謝!
編輯:
for(int i = 0; i<max; i++)
{
if(data[i].data!= nullptr)
{
int *p = (int*)data[i].data;
}
}
如果'* temp'的目的是超過這個代碼所在的範圍,最後一個例子將不起作用,因爲以後本地不會存在。 – cHao
什麼不工作?提供一個顯示問題的[SSCCE](http://sscce.org)! –
'cin'設置指針的值(即它指向的位置)的值,而不是指針指向的數據。我懷疑你沒有返回指針存儲位置的實際值(例如2看起來一目瞭然),而是返回指針的值(即它指向的存儲位置)。 – RageD