초기화되지 않은 list 지역 변수를 사용했습니다

익명 사용자의 이미지

#include<iostream>
 
using namespace std;
 
 
class node {
public:
	int data = 0;
	node *next;
};
 
class List {
public:
	node *head;
	node *ptr;
	node *tail;
	List() {
		head = NULL;
		ptr = NULL;
		tail = NULL;
	}
 
 
};
 
 
void insert(List *arg0, int value) {
	node *ptr = new node;
	ptr->data = value;
	ptr->next = NULL;
	if (arg0->head == NULL && arg0->tail == NULL) {
		arg0->head = arg0->tail = ptr;
	}
	else {
		arg0->tail->next = ptr;
		arg0->tail = ptr;
	}
 
}
 
void print(List *list) {
	node *p = list->head;
 
	while (p != NULL) {
		cout << p->data << endl;
		p = p->next;
	}
 
}
 
 
int main() {
 
	List *list;
	insert(list, 1);
	insert(list, 2);
	insert(list, 3);
	print(list);
 
 
}

간단한 링크드 리스트를 구현해봤는데 list를 생성자에서 초기화했는데도 지역변수가 초기화되지 않았다고 하여 실행이 안됩니다.ㅠ 적어도 구체적으로 어디서 오류가 났는지 알고싶은데 아직 입문 수준이라 못찾겠습니다. 도와주세요

ㅇㅇ의 이미지

메인에서 List 할당을 안해줬네요..