Следующий код C возвращает ошибку «ошибка сегментации». Я не понимаю, почему он не возвращает значение 20. Какая у меня ошибка?Сегментация Неисправность при попытке печати значения в C
#include <stdio.h>
int main()
{
int* n;
*n = 20;
printf("%i\n",*n);
return 0;
}
'п' неинициализированная значение указателя, что вы разыменования в строке «* п = 20 ». Если вы хотите использовать указатель, вы должны убедиться, что вы его инициализируете, чтобы указать на допустимую ячейку памяти, прежде чем пытаться разыменовать ее. – reuben
В качестве альтернативы уже предоставленным ответам вы можете просто «int n = 20» и передать '& n' (адрес n), какому бы функции не требовалось значение' int * 'в качестве параметра. – Vassilis