字符数组倒序有关问题:写入位置冲突,如何解决啊

字符数组倒序问题:写入位置冲突,怎么解决啊?
大家帮我看看,我这个运行怎么报错:写入位置冲突啊
如何把char *buff[]={"A","B","C","D","E","F","G"};转换为char *buff[]={"G","F","E","D","C","B","A"};

我的做法是下面的,报写入错误?大家帮我解决下,怎么回事啊,谢谢了
#include "stdafx.h"

void swap(char *buff[],int count){
  char **p,**q;
  int i=0;
p=buff;
q=p+count-1;
  for(i=0;i<count;i++,p++,q--){
  char temp;
  temp = **p;
  **p = **q;
  **q = temp;
  }
}



int main(int argc, char* argv[])
{
char *buff[]={"A","B","C","D","E","F","G"};
  
  swap(buff,7);
return 0;
}

------解决方案--------------------
你的都不是字符数组了,都成字符串组了。。。
char buff[8]={'A','B','C','D','E','F','G'};//这样定义
char buff[8]="ABCDEFG";//或者这样定义
------解决方案--------------------
C/C++ code

void swap(char buff[],int count)
{
    int i=0,j;
    j=count-1;
    for(i=0;i<count/2;i++,j--){
        char temp;
        temp = *(buff+i);
        *(buff+i) = *(buff+j);
        *(buff+j) = temp;
    }
}

------解决方案--------------------
C/C++ code


    char *buff[7]={0};
    for(int i=0;i!=7;i++)
    {
        buff[i]=new char[10]();
        char c='a';
        c='a'+i;
        memcpy(buff[i],&c,1);
    }
    swap(buff,7);