Код:Почему я не могу использовать этот код для перезаписи строки?
#include "stdio.h"
#include "string.h"
int main()
{
char *p = "abc";
printf("p is %s \n", p);
return 0;
}
Выход:
p is abc
Код:
#include "stdio.h"
#include "string.h"
int main()
{
char *p = "abc";
strcpy(p, "def");
printf("p is %s \n",p);
return 0;
}
Выход:
Segmentation fault (core dumped)
Может кто-нибудь объяснить, почему это происходит?
В качестве альтернативы вы имеете директивы '# include', которые ищут локальные файлы (в том же каталоге или в каталоге, указанном' -I' при компиляции). Это системные библиотеки, поэтому вы можете использовать '<>' вместо '' ''.Я не знаю вашу установку сборки, но она должна сделать вещи менее сложными, чтобы не беспокоиться о том, чтобы специально использовать '-I' во всех ваших системных каталогах. –