C function to remove the first string from an XOR linked list of names:
int remove_string(Node **head, char *deleted_string) {
    Node *temp = *head;
    *deleted_string = *(*head)->name;
    *head = calculate_xor_value(NULL, temp->xor_value);
    if (*head != NULL) {
        (*head)->xor_value = calculate_xor_value(NULL, calculate_xor_value(temp, (*head)->xor_value));
    }
    free(temp);
}
In the question, one of the input parameters has to be a char pointer called deleted_string, which is the string that is being removed from the list. The code to remove the string works fine (line 4 onwards), but I am struggling to save the string to the char* deleted_string (line 3) *deleted_string = *(*head)->name;
Everytime I run the code
// printf("%s", deleted_string ); only the first character is being printed; I think I understand that this is because pointers only point to the first character of a string, but is there a way to make the pointer point to the whole string? Perhaps by somehow converting (*head)->name to a string or an array?
Any help would be appreciated, sorry if this is a silly question. I have spent hours trying to find another page about this but I didn't so I thought I'd ask.
 
    