#include <iostream>
#include <iomanip> // std::setprecision
#include <fstream>
#include <cmath>
#include <string>
#include <sstream>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <random>
#include <chrono>
#include <time.h>
#include <list>
using namespace std;
typedef struct {
int N,M, C;
vector<int> csize;
vector<int> crad;
vector<int> zC;
vector<int> bone;
vector<int> mdist;
vector<int> nflag;
}*UserData;
#define CMax 5
vector<int> cname;
int main()
{
UserData data;
data = (UserData)malloc(sizeof *data); /* Allocate data memory */
cname.push_back(1);
data->N = 3;
data->M = 4;
data->C = 5;
data->csize.push_back(-1);
free(data);
return 0;
}
上述程式在 data->csize.push_back(-1); 出錯了,哪位大佬可以幫忙看下原因嗎
uj5u.com熱心網友回復:
data = (UserData)malloc(sizeof *data);====>改成data=https://bbs.csdn.net/topics/new UserData
uj5u.com熱心網友回復:
運行后顯示 錯誤(活動) E0513 不能將 "UserData *" 型別的值分配到 "UserData" 型別的物體uj5u.com熱心網友回復:
看錯了,不好意思uj5u.com熱心網友回復:
typedef struct {int N,M, C;
vector<int> csize;
vector<int> crad;
vector<int> zC;
vector<int> bone;
vector<int> mdist;
vector<int> nflag;
}*UserData;
===》
直接改成
struct UserData {
int N,M, C;
vector<int> csize;
vector<int> crad;
vector<int> zC;
vector<int> bone;
vector<int> mdist;
vector<int> nflag;
};
UserData* data=https://bbs.csdn.net/topics/new ....
用c++最好先把c++的基本語法熟悉一下
uj5u.com熱心網友回復:
謝謝你,成功了uj5u.com熱心網友回復:
如果不改變定義的struct,有其他補救的辦法嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/264610.html
標籤:C++ 語言
