-3
我的程序中遇到了一個問題。 我寫了這樣的代碼爲什麼我無法獲得矢量數據?
struct Data{
char name[10];
vector<char*> idList;
}
和我寫的流動功能
// Convert Struct to char*
char* getMsg()
{
char *msg = (char*)malloc(100);
Data data;
// Set Value data's name
strcpy(data.name, "bodandhel");
// Set Value data's idList
data.idList.push_back("jams");
data.idList.push_back("bobss");
// Use memcpy function
memcpy(msg, &data, sizeof(Data));
XXXXXXXXXXXXXXXXXXXXXX
return msg;
}
,然後我寫了流動的功能,得到的char *
// get the struct from char*
Data getStruct(char *msg)
{
**Data *data;
data =(Data*)msg;
return *data;**
}
,如果我的結構將getStruct()中使用的句子寫入getMsg()XXXXX行,我可以得到正確的數據結構。 但如果我調用函數getStruct()和味精是從功能的getMsg了,不好,我可以得到數據名,不能在矢量得到的數據,編譯器告訴我是錯的指針!
我想在調用函數Msg()後會有一些數據被實現,但我不知道爲什麼?以及我如何解決問題?
我的編譯器是MSVC 9.0
你有什麼對'std :: string',你沒有反對'std :: vector'? – chris
您發佈的代碼編譯正常。你應該發佈不能編譯的代碼。 –
「編譯器告訴我是錯的指針!」闡述 –