char* a;
*a = 'a';
/*SEGMENTATION FAULT HERE!*/
Там нет никакого "там". Вы объявили a
и оставили его неинициализированным. Затем вы попытались использовать его в качестве адреса. Вам нужно a
указать на что-то.
Один пример:
char buffer[512];
char *a = buffer;
(примечание buffer
имеет максимальный размер, и когда он выходит из области видимости, вы не можете ссылаться на него.)
Или динамическая память:
char *a = malloc(/* Some size... */);
if (!a) { /* TODO: handle memory allocation failure */ }
// todo - do something with a.
free(a);