*Sometimes* you will have problems incrementing a parameterized pointer, as if it were const...remote, but possible. Try:
Code:
#include <iostream>
#include <conio>
using namespace std;
struct node{
int data;
node *next;
};
void add_node(node *list, int num);
void output_list(node *list);
void delete_head(node *list);
int main(){
node *list = NULL;
add_node(list, 3);
add_node(list, 22);
add_node(list, 4);
output_list(list);
delete_head(list);
output_list(list);
delete_list(list);
return 0;
}
void add_node(node *list, int num){
node *iter = list,
*temp = new node;
temp -> data = num;
temp -> next = NULL;
if(list == NULL){
list = temp;
return;
}
while (iter -> next != NULL)
iter = iter -> next;
iter -> next = temp;
} //end void add_node
void output_list(node *list){
node *temp = list;
int i = 0;
while (temp != NULL){
cout << "Node " << ++i << " contains data value " << temp -> data << endl;
temp = temp -> next;
}
cout << i << "nodes total." << endl;
} //end void output_list
void delete_head(node * list){
if(list == NULL) return;
node * goner = list;
list = list->next;
delete goner;
}
/* edit*///...function added
void delete_list(node *list){
node *current, *next;
next = current = list;
while(next){
next = current->next;
delete current;
current = next;
}
} //end void delete_list