valgrind
позволяет легко отследить эту проблему:
==29905== Process terminating with default action of signal 11 (SIGSEGV)
==29905== Bad permissions for mapped region at address 0x10A01F
==29905== at 0x109207: main (sf.c:23)
Это утверждение sentence[i] = test[j]
, которое пытается записать в const char *
(проверьте typedef
из string
). Чтобы исправить это, вам нужно будет предоставить sentence
свою собственную копию данных для работы, например:
char sentence[] = "DEEEATSXYLAPHONEELEPHANTTY";
Теперь назначение записывает локальные данные, и, по крайней мере, в моей системе , valgrind
(и асан) запускаются без жалоб.