读书人

字符数组倒序有关问题:写入位置冲突

发布时间: 2012-02-28 13:06:34 作者: rapoo

字符数组倒序问题:写入位置冲突,怎么解决啊?
大家帮我看看,我这个运行怎么报错:写入位置冲突啊
如何把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); 

读书人网 >C语言

热点推荐