Następujący kod C zwraca błąd "błąd segmentacji". Nie rozumiem, dlaczego nie zwraca wartości 20. Jaki jest mój błąd?Błąd segmentacji przy próbie drukowania wartości w C
#include <stdio.h>
int main()
{
int* n;
*n = 20;
printf("%i\n",*n);
return 0;
}
'n' jest niezainicjowany wartość wskaźnik, że jesteś dereferencing w wierszu „* n = 20 ". Jeśli chcesz użyć wskaźnika, musisz go zainicjować, aby wskazywał prawidłowe miejsce w pamięci, zanim spróbujesz usunąć zaznaczenie. – reuben
Alternatywnie do odpowiedzi już podanych, możesz po prostu 'int n = 20' i przekazać' & n' (adres n), do jakiejkolwiek funkcji wymaga 'int *' jako parametru. – Vassilis