今天发现的问题,闲来没事,复习了一下数据结构线性表顺序表,写完结构,开始初始化,就发现了问题。
1.书上是这么写的,想当于将myarray传引用进去,没毛病。
typedef struct arr
{
int * elem;
int size;
int capacity;
}*ar;
void init(arr &myarray)
{
cout << "init started!!\n\n\n";
myarray.elem = new int[DEFAULT_CAPACITY];
myarray.size = 0;
myarray.capacity = DEFAULT_CAPACITY;
cout << "end init"<< endl;
}
2.我是这写的,从来都没有关注过全局指针初始化的问题,所以疯狂查错,搞不定,大神说要给定义的指针分配内存,搜嘎。
警示自己,不要再犯。
typedef struct arr
{
int * elem;
int size;
int capacity;
}*ar;
//!!!!!!! 就是没加这条。
ar myarray = new arr;
//!!!!!!!
void init()
{
cout << "init started!!\n\n\n";
myarray->elem = new int[DEFAULT_CAPACITY];
myarray->size = 0;
myarray->capacity = DEFAULT_CAPACITY;
cout << "end init"<< endl;
}