Я должен написать программу для своего класса программирования C, которая преобразует адреса IPV4 в IPV6. Нам была предоставлена функция для выполнения преобразования (приведенный ниже код выполняет фактическое преобразование). У меня возникают проблемы в XCode, когда я запускаю этот код. Я использовал точки останова и выяснил, что он падает, когда достигает линии sprintf()
. Вылетает с: Program received signal: “SIGABRT”.
sharedlibrary apply-load-rules all
. Я протестировал точно такой же код на компиляторе на основе Windows, и он работает нормально. Что может привести к сбою на одном, а не на другом? Моя программа должна работать на Windows, а не на Mac для процесса оценки, если нет исправления, тогда я решу написать и написать остальную часть программы для Windows, но я бы предпочел использовать Mac, так что любая помощь приветствуется.
strncpy(IPV6, "0000:0000:0000:0000:0000:0000:", 30);
sscanf(input, "%u.%u.%u.%u", &a, &b, &c, &d);
sprintf(hexIP, "%02X%02X:%02X%02X", a, b, c, d );
strncat(IPV6, hexIP, 9);
Спасибо
EDIT
int makeIPV6(const char input[25], char IPV6[40], int style)
{
unsigned int a, b, c, d, e, f;
char hexIP[9];
char hexMAC[24];
printf("Stage 2\n");
strncpy(IPV6, "0000:0000:0000:0000:0000:0000:", 30);
sscanf(input, "%u.%u.%u.%u", &a, &b, &c, &d);
sprintf(hexIP, "%02X%02X:%02X%02X", a, b, c, d );
strncat(IPV6, hexIP, 9);
return strlen(IPV6)
}