问个很基础的问题 为什么会段错误
#include<stdio.h>#include<stdlib.h>void reverse_string(char *string){ char *last_char; for(last_char = string; *last_char != '\0'; last_char++) ; last_char--; while(string<last_char) { char temp; temp = *string; *string++ = *last_char; *last_char-- = temp; } }int main(){ char *str = (char *)malloc(sizeof(char)*20); str = "123456abcdef"; printf("str1 = %s\n",str); reverse_string(str); printf("str2 = %s\n",str); free(str); str = NULL;}