Отсортировать строки! Где ошибка? - C (СИ)

Формулировка задачи:

Нужна помощь. Нужно написать код для сортировки строк, с клавиатуры вводится наименование города и популяция. Задача отсортировать в алфавитном порядке города. Вот сам код в СИ.
#include <stdio.h>
#include <string.h>
#include "struct.h"
 
 
void inputTown(struct town*pt);
void printTown(struct town*pt);
void sortTown(struct town*pt);
 
int main(int argc, char**argv)
{
    struct town Towns[10];
 
    for(int i = 0; i < 10; i++){
        inputTown(&Towns[i]);
    }
   
    sortTown(&Towns);
   
    for(int i = 0; i < 10; i++){
        printTown(&Towns[i]);
    }
 
    getchar();
    return 0;
}
 
void inputTown(struct town*pt)
{
    printf("Input netx town.\n");
    printf("Name: ");
    gets_s(pt->name, NAMELENGHT);
 
    printf("Population: ");
    scanf_s("%d", &pt->population);
    getchar();
    return;
}
 
void printTown(struct town*pt)
{
    printf("town: %s, population:%d\n", pt->name, pt->population);
}
 
void sortTown(struct town*pt)
{
    char tmp[80];
    char*ptr = tmp;
 
    for (int i = 0; i < NAMELENGHT - 1; i++)                     //сортировка выбором
        for (int j = i; j < NAMELENGHT; j++) {
            if (strcmp(pt[i].name, pt[j].name) > 0)
            {
                *ptr = pt[i].name;//[80]
                int x = pt[i].population;
                strncpy_s(pt[i].name, NAMELENGHT, pt[j].name, strlen(pt[j].name));
                pt[i].population = pt[j].population;
                strncpy_s(pt[j].name, NAMELENGHT, ptr, strlen(ptr));
                pt[j].population = x;
            }
        }
}
собственно вроде ошибка где то в функции sortTown, либо может неверно аргумент отправляю в функцию. Подскажите где ошибка пожалуйста.

Код к задаче: «Отсортировать строки! Где ошибка? - C (СИ)»

textual
*ptr = pt[i].name;  // 54 строка

10   голосов, оценка 3.700 из 5


СОХРАНИТЬ ССЫЛКУ