У вас есть int pointer
. Право.
Это просто означает, что у вас есть переменная, указывающая на некоторую область памяти.
Но вы не распределили / зарезервировали эту область памяти. Так что это может указывать на что угодно.
И это, безусловно, будет указывать на область памяти, которой вы не владеете, отсюда ошибка сегментации.
Вам нужно выделить память для указателя ...
Например:
int * default_octave = malloc( sizeof( int ) );
Или вы также можете использовать:
int default_octave_val;
int * default_octave = &default_octave_val;
Либо вы выделяете память для хранения вашего int (а затем получаете указатель на допустимую область памяти), либо вы создаете указатель на существующую область памяти (в данном примере это адрес стека).
Затем вы можете отменить ссылку на этот указатель, так как он указывает на допустимую область памяти.
Если этого не произойдет, у вас будет ошибка сегментации или ошибка шины, в зависимости от вашей ОС.