Хотя все остальные ответы верны относительно правильного использования, я хочу объяснить, почему именно вы получаете ошибку сегментации.
Код
#include <stdio.h>
int main(void) {
char *a[] = {"s1","s2"};
printf("\n S==>>> %s",*a[0]);
}
пытается напечатать строку \n S==>>> s1
, но терпит неудачу, особенно из-за ошибки сегментации, поскольку доступ к *a[0]
приводит к адресу 0x73
, поскольку шестнадцатеричное значение s
равно 0x73
. И адрес 0x73
не отображается в адресном пространстве вашего процесса, что приводит к segmentation fault
, так как вы в основном пытаетесь напечатать строку по адресу 0x73
.