class List{
public:
int* data;
int lenth;
void InitList(List* &L);
void Destory(List* &L);
};
void List::InitList(List* &L){
L->data = new int[100];
L->lenth = 0;
}
void List::Destory(List* &L){
if(!L)
delete[] L->data;
}
int main()
{
List* L1;
L1->InitList(L1);
L1->Destory(L1);
return 0;
}
这一行报错,L->data = new int[100];
什么错误提示?供参考:
#include <stdio.h>
class List {
public:
int* data;
int lenth;
void InitList(List*& L);
void Destory(List*& L);
};
void List::InitList(List*& L) {
L->data = new int[100];
L->lenth = 0;
}
void List::Destory(List*& L) {
if (!L)
delete[] L->data;
}
int main()
{
List* L1;
L1 = new List; //给 L1 new 个对象
L1->InitList(L1);
L1->Destory(L1);
return 0;
}
很正常,你看你main 函数中L1 初始化了吗?没有初始化,那就是野指针了