[ANSI C] Zczytywanie do Stringu

0

Witam,
próbuję zczytać dane z klawiatury:

char *str;
scanf("%s", str);

Dane muszę przechowywać w takiej zmiennej. Niestety po uruchomieniu tego kodu i wpisaniu treści w konsoli pojawia się błąd:

Naruszenie ochrony pamięci

Czy mógłby ktoś mi dać jakąś podpowiedź, ewentualnie rozwiązanie tego problemu?
Pozdrawam

0

Zapomniałeś o jednym ważnym znaczku:

scanf("%s", &str);
0

Próbujesz wczytać do tablicy, która nie istnieje. Przed scanf() zaalokuj jakąć pamięć dla str, np. str = malloc(100 * sizeof(char)). Ewentualnie zadeklaruj nie sam wskaźnik, a całą tablicę: char str[100];.

Jeśli będziesz alokował dynamicznie na stercie (przy pomocy malloc()), nie zapomnij później zwolnić pamięci za pomocą free().

0

Niestety, w takim przypadku zwraca mi błąd:

warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char **’

0

Nie czytaj tego co napisał @a, tylko to co napisał rincewind:

char str[100];
scanf("%s", str);

Lub:

char* str = (char*)malloc(100 * sizeof(char));
scanf("%s", str);
free(str);

1 użytkowników online, w tym zalogowanych: 0, gości: 1