ポインタ変数pに格納された文字列の逆順を配列aに格納した後に、配列aの中身を文字列として表示させたいのですが、下のソースだとうまくいかないんです><
どうしたらいいんですか??

char *p;
char a[20];
int i,c=0;
p="abcdefg";

while(*p!='\0'){
c++,p++;
}

for(i=0;i<c;i++){
p--;
a[i]=*p;
}

printf("%s",a);