Мне нужно написать программу для моего класса программирования C, которая преобразует адреса IPV4 в IPV6. Нам была предоставлена функция для преобразования (приведенный ниже код делает фактическое преобразование). У меня возникают проблемы с XCode, когда я запускаю этот код. Я использовал точки останова и выяснил, что он сбой, когда он попадает в линию sprintf()
. Сбой: Program received signal: “SIGABRT”. sharedlibrary apply-load-rules all
. Я тестировал тот же самый код на компиляторе под Windows, и он работает нормально. Что может привести к тому, что он потерпит неудачу на одном, а не на другом? Моя программа должна запускаться в Windows, а не Mac для процесса оценки, если для этого нет исправления, тогда я сделаю это и напишу остальную часть программы в Windows, но я бы предпочел использовать Mac, чтобы любая помощь была оценена.Ошибка на xcode, но не на окнах. SIGABRT?
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)
}
Знаете ли вы, какие компиляторы вы используете? В Xcode вы можете сделать ** Получить информацию ** в своем проекте и проверить настройки сборки. Какой компилятор вы используете в Windows? – BoltClock
Не могли бы вы разместить объявления переменных? Кажется, вы вызываете неопределенное поведение, которое работает в Windows по совпадению. –
На Mac это GCC4.2 (я думаю) и окна в подумайте, что это mingw (я использую quincy так, что бы он ни использовал) – Darc