我想初始化一个char *字符串,在一个结构中。字符指针的C++错误
这是结构:
typedef struct __String {
char* data; // C-string data,
unsigned* copyRef; // number of copy reference, delete only when the copyRef is 0
bool isACopy; // this boolean is true when *data is a ref to an other MyString
__String() {
data = 0;
isACopy = false;
copyRef = new unsigned();
*copyRef = 0;
return;
}
void addCopyRef() {
*copyRef++;
}
void removeCopyRef() {
*copyRef--;
}
} *MyString;
这就是地步chrash ..
void Initialize(MyString& string){
string->data = new char[LENGHT];
string->data[0] ='\0'; // this generate an error!
string->addCopyRef();
}
这是主要的:
MyString left_string, right_string, both_string;
Initialize(left_string);
Initialize(right_string);
Initialize(both_string);
第一个是怎么回事好吧,第二不.. 可以请你帮我理解问题在哪里?谢谢!
名称'__String'是为实现保留的,所以您有未定义的行为。另外'MyString'是一个指针类型。你如何调用函数? –
如何定义“LENGHT”?你的意思是'长度'? – Floris
'MyString'是指针,也许是'NULL'。 – fasked