這是我自己的解決方案。 對於第一個我填的是結構
for (int i = 0 ; i < size ; i++)
{
(datas+i)->value1 = i;
(datas+i)->value2 = i;
}
後,我創建了Class
,從datas
public ref class Values
{
private:
int _value1;
int _value2;
public:
Values();
property int Value1
{
int get();
void set(int value);
}
property int Value2
{
int get();
void set(int value);
}
};
使保存的數據,我可以從我的結構填補List
數據
List<Values^>^ mValues = gcnew List<Values^>();
for (int i = 0 ; i < size ; i++)
{
Values^ newValues = gcnew Values();
newValues->Value1 = (datas+i)->value1;
newValues->Value2 = (datas+i)->value2;
mValues->Add(newValues);
}
畢竟,我可以通過mValues->RemoveAt(1);
刪除一個項目?清除內存free(datas);
和重新結構與新的大小
size = mValues->Count;
datas = (struct values *) malloc(size * sizeof(struct values));
,名單
for (int i = 0; i < size; i++)
{
Values^ curValue = mValues[i];
(datas+i)->value1 = curValue->Value1;
(datas+i)->value2 = curValue->Value1;
}
這一切,我希望它能夠幫助別人填滿它!
您真的*在Visual Studio **中使用託管C++之前**到VS2005嗎?另外,爲什麼這個標籤C?你也在編譯.c文件嗎? – crashmstr
對不起,我使用C++/cli。是的,我也編譯.c文件,結構被寫在c –
託管結構與非託管結構不兼容,它具有不同的佈局。您一次將它們轉換爲一個字段。 –