O que há de errado com o código abaixo?
O código deveria girar um vetor unidimensional de n elementos deixados pela posição i. por exemplo, com n = 8 e i = 3, o vetor abcdefgh é girado para defghabc.
O abaixo falha na função string_reverse. Não consegui descobrir o que há de errado lá.
<code>#include <stdio.h> #include <string.h> #include < conio.h> void string_reverse(char* str, int left, int right ) { char *p1 = str + left; char *p2 = str + right; while (p1 < p2) { char temp = *p1; *p1 = *p2; *p2 = temp; p1++; p2--; } } void rotate( char* str, int k ) { int n = strlen( str ); string_reverse( str, 0, k - 1 ); string_reverse( str, k, n - 1 ); string_reverse( str, 0, n -1 ); } int main(int argc, char* argv[]) { char* string = "abcdefghijk"; rotate( string, 3 ); printf("%s",string ); getch(); return 0; } it crashes at *p1 = *p2; </code>