C - присвоение значения нулевому указателю - PullRequest
0 голосов
/ 17 февраля 2019

Привет, ребята, я новичок в C и указатели, поэтому я надеюсь, что вы простите меня.

У меня есть следующий код:

char *str = NULL;
*str = 'a';
printf("My string is :%s\n",str);

Он компилируется, но я получаюошибка сегментации каждый раз.В чем причина этого и что я могу изменить, чтобы я мог назначить «a» для моей строки?

Заранее спасибо!

1 Ответ

0 голосов
/ 17 февраля 2019
char *str = NULL;

Указатель str еще не выделен.Так что вы не можете разыменовать это.Затем вы попытались восстановить с помощью

*str = 'a';

Произойдет ошибка сегментации.

Если вы хотите, чтобы str имел значение "a", вы можете сделать это следующим образом:

char *str = "a";
printf("My string is :%s\n",str);
...