I am trying to learn the fundamentals of C, but I cannot figure out why this code doesn\'t work. The while loop in reverse() causes a bus error. I found almost identical code
You are trying to change a string literal which leads to undefined behavior.
Change
char* a = "12";
to
char a[] = "12";