Я пытаюсь вернуть указатель на символ
Ваш код возвращает возвращает указатель на символ.Но он также совершает кардинальный грех: он возвращает указатель на объект, время жизни которого заканчивается завершением вызова функции.Поэтому результирующий указатель бесполезен для вызывающей стороны.
Есть несколько альтернатив.Часто, если кто-то собирается вернуть указатель, он динамически распределяет объект, на который он указывает.Динамически размещенные объекты живут до тех пор, пока они не будут явно освобождены.Однако для ваших конкретных целей я бы предложил сделать локальную переменную функции static
, что в точности означает, что она живет и сохраняет свое последнее установленное значение на протяжении всей жизни программы:
char * returnPointerToCharacter(){
static char s = 's';
return &s;
}