我想定义一个结构struct
{
char a[];
int i;
};但是数组都是要定长的,有什么办法能实现上面的情况,我在程序中动态加入字符数组的内容(不定长), 因为可能a[1]={'a','b'} a[2]={'a','a','a'}请各位指点迷津,谢谢
{
char a[];
int i;
};但是数组都是要定长的,有什么办法能实现上面的情况,我在程序中动态加入字符数组的内容(不定长), 因为可能a[1]={'a','b'} a[2]={'a','a','a'}请各位指点迷津,谢谢
{
char *a;
int i;
};构造函数 , new或a = NULL;
每次 delete, new
构造函数
if(NULL != a)
{
delete [] a;
a = NULL;
}
struct array {
char *p[MAXLEN];
int i;
};
array a;
a.p[0] = new char[2];
a.p[1] = new char[3];
这样行不行啊?
int x = 4;
char * p = new char[x];//与char[4] 似,
用完后
delete [] p;
struct YourStruct;
{
private:
char *p;
int iMaxLength;
int i;
public:
BOOL SetBuff(char *pBuff,int iLength);
YourStruct();
~YourtStruct();
};YourStruct()
{
p = NULL;
iMaxLength = 0;
}
~YourStruct()
{
delete [] p;
p = NULL;
iMaxLength = 0;
}BOOL YourStruct::SetBuff(char *pBuff,int iLength)
{
if(iMaxLength<iLength)
{
p = realloc(p,iLength);
if(!p)
return FALSE;
iMaxLength = p;
}
p = pBuff;
return TRUE;
}
BOOL YourStruct::SetBuff(char *pBuff,int iLength)
{
if(iMaxLength<iLength)
{
p = realloc(p,iLength);
if(!p)
return FALSE;
iMaxLength = iLength;
}
p = pBuff;
return TRUE;
}
string word;
while(cin>>word)
{
text.push_back(word);
//...
}cout<<"words read are: \n"; //读取并显示
for(vector<string>::iterator it = text.begin(); it!=text.end(); ++it)
cout<<*it<<' ';
cout<<endl;
//iterator是标准库中的类,具有指针的功能