@R .: Хорошо закрой мне рот. «объект: область хранения данных в среде выполнения, содержимое которой может представлять значения». Спасибо за исправление!

аюсь изучить основы C, но я не могу понять, почему этот код не работает. Цикл while в reverse () вызывает ошибку шины. Я нашел почти идентичный код в книге собеседований по программированию как правильное решение, но ни этот, ни другие похожие методы, которые я видел размещенные здесь, не работают для меня без ошибки шины.

#include <stdio.h>

void reverse(char* str) {
 char* end = str;
 char tmp = 0;
 if(str) {
  while(*end) {
   end++;
  }
  --end;
  while(end>str) {
   tmp = *end;
   *end-- = *str;
   *str++ = tmp;
  }
 }
}

int main() {
 char* a = "12";
 puts(a);
 reverse(a);
 puts(a);

 return 0;
}

Ответы на вопрос(3)

Ваш ответ на вопрос