titov_andrei
@titov_andrei
All my life I learn - and die a fool!

Что за «Ошибка сегментирования (сделан дамп памяти)»?

Программа проходит компиляцию, но при запуске выдаёт сообщение -
Ошибка сегментирования (сделан дамп памяти)

#include <stdio.h>
#include <stdlib.h>

void number_printer(int number);

int main(int argc, char **argv)
{
  int num = atoi(argv[1]);
  number_printer(num);
  return 0;
}

void number_printer (int number)
{
    int num;
    printf("Enter number: ");
    scanf("%d ", &num);
    switch(num){
        case 0: printf("Zero, ");
        break;
        case 1: printf("One, ");
        break;
        case 2: printf("Two, ");
        break;
        case 3: printf("Three, ");
        break;
        default: printf("%d ", num);
        break;
    }
}
  • Вопрос задан
  • 262 просмотра
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Программа попыталась получить доступ к данным в недоступном её сегменте памяти. Ошибка в вызове
printf("%d ", num);
Ответ написан
SagePtr
@SagePtr
Еда - это святое
99% что обращаетесь к нулевому указателю.
И вероятнее всего, здесь:
int num = atoi(argv[1]);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы