Buďte zdrávi,
nevím, jestli toto spadá pod tuto kategorii, a celkově i pod toto fórum, ale mám problém s C.
Mám následující kód:
#include <stdio.h>
#include <stdlib.h>
char *str;
int main()
{
printf("Napis neco:\t");
scanf("%s", &str);
printf("Zadal jsi '%s'.\n", str);
return 0;
}
Program zkompiluju s varováním "scanf.c:9: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char **’", nicméně zkompiluju.
Spustím ho, něco napíšu, enter a "Neoprávněný přístup do paměti (SIGSEGV)".
Už jsem zkoušel zaměnit "char *str;" za "char *str = malloc(sizeof(char)*30);", ale GCC hlásí chybu.
Taky jsem zkoušel dát na začátek funkce main() "str = malloc(sizeof(char)*30);", ale jako by to tam nebylo, pořád to padá.
Taky musím mít proměnnou str deklarovanou před začátkem funkce main, protože ve složitějším programu, který píšu, využívají tuto proměnnou ještě další funkce.
Co mám do toho kódu ještě napsat nebo co mám změnit, aby to fungovalo, prosím?
Díky