представьте, что указателя нет. Т.к. еще раз объясняю, код доходит до строчки с функцией atoi и на этом моменте происходит ошибка и консолное приложение закрывается.
Выяснил, что программа падает из-за команды printf("%s", a); Если использовать другой спецификатор - %с, то правильно выводится только если вводить числа до 127, а после 127 начинает выводить рандомные числа.
Извиняюсь, по аналогии с python, решил, что всё вводимое с клавиатуры является типом данных string, от этого пытался преобразовать string в int. Так как я использовал в scanf переменную, а не указатель, то при выводе получалось другое число. Если в scanf("%s",&a) поставить спецификатор %i или %d, то всё работает.
Всем спасибо.
функция scanf работает с указателями, так что в качестве параметра тебе нужно было передавать не "а", а адрес указывающий на "а", проще говоря напиши: scanf("%s", &a)
все равно программа закрывается с ошибкой, а именно: компилирую, запускаю, ввожу число, после нажатия enter винда выдает ошибку "прекращена работа программы "имя программы.ехе".
вбил ваш код в компилятор, проблема в следующем, когда вы пишите %s, ожидается, что вы будите работать со строкой, т.е. с массивом char, если вам нужно ввести только число, то вам следует либо вместо char выбрать int и вместо %s писать %d, или если вам все же нужен тип char, используйте соответствующий ему знак форматирования (с Си я баловался довольно давно, но по моему это %c)
потому что указатель "a" непонятно куда указывает, а ты в это непонятно куда ещё пытаешься ввод с клавиатуры организовать, и в итоге получаешь непонятно что.