parse(a)
возвращает char*
, а newString имеет тип char
, поэтому они несовместимы.
Измените это:
char newString = parse(a);
printf("%s\n", &newString);
на следующее:
char *newString = parse(a);
printf("%s\n", newString);
Относительно ваших ошибок / предупреждений:
writer.c: В функции 'parse': writer.c: 6: предупреждение: возврат из несовместимого типа указателя
Вы возвращаете const char*
, в то время как тип возвращаемой функции - char*
writer.c: 6: предупреждение: функция возвращает адрес локальной переменной writer.c: в функции
данные считаются локальной переменной, и вы возвращаете этот адрес, который может быть опасным, если он был определен внутри функции.
'main': writer.c: 11: предупреждение: инициализация делаетцелое число от указателя без приведения
Вы присваиваете char*
char
.
И в качестве примечания: когда вы используете указатель на символ на строку констант,это const: const char *a = "# Test";