Po pierwsze, pola struktury: imie i nazwisko są typu char. To nie ma prawa działać tak jak chcesz...
struct moja_struktura
{
char imie;
char nazwisko;
...
}
Wskaźnik char* wskazuje na adres pierwszego elementu łańcucha. Taka konstrukcja:
n_wsk -> imie = *imie ;
zapisuje do pola struktury wartość, na którą wskazuje wskaźnik - czyli pierwszą literę.
Nie znam zbytnio C. Ale, pola struktury powinny być typu char*, i powinieneś do nich zapisywać dynamicznie zaalokowaną pamięć. Ewentualnie typem pól, może być też tablica char.
W obu przypadkach, zwykłe przypisanie nie jest dozwolone, musisz zastosować funkcję strcpy/strncpy do przekopiowania łańcucha. Prosty przykład:
#include <stdio.h>
#include <string.h>
struct name {
char first[20];
char last[20];
};
int main() {
struct name sara;
strncpy(sara.first, "Jan", 20);
strncpy(sara.first, "Kowalksi", 20);
printf("name: %s\n", sara.first);
}