Trying to implement the add function in dynamic list, recursively. The code is self-explanatory:
struct list {
    int value;
    list* next = NULL; // is this valid?
};
list head;
void add(list* cur, int value) {
    if (cur->next) {
        add(cur->next, value);
        return;
    }
    cur->next = (list*)(malloc(sizeof(list)));
    cur->next->value = value;
    cur->next->next = NULL; // withouth this line, the program errors out after two calls to the function add
}
int main() {
    for (int i = 0; i < 50; i++) 
        add(&head, i);
}
After seeing the debugger, I realized that calling malloc wasn't initiating "next" with NULL as specified in the defininition of the list struct.
 
     
    
()` and `std::unique_ptr
– François Andrieux Dec 28 '22 at 16:07next;` instead.