指针字符串的问题
#include "stdafx.h"#include "string.h"
#include "malloc.h"
#include "stdio.h"
void JsSort(char a[]);
int main(int argc, char* argv[])
{ char *p="adhskfjwg";
JsSort(p);
puts(p);
while(1);
return 0;
}
void JsSort(char a[])
{
int i, j,num=0,k;
char *p, t;
k=strlen(a);
p=(char *)malloc(k*sizeof(char));
for(i=0;i<k;i++)
{
if(i%2)
{
*(p+num)=a[i];
num++;
}
}
for(i=0;i<num-1;i++)
for(j=i+1;j<num;j++)
{
if(*(p+i)<*(p+j))
{
t=*(p+i);
*(p+i)=*(p+j);
*(p+j)=t;
}
}
j=0;
for(i=0;i<k;i++)
if(i%2)
{
a[i]=*(p+j);
j++;
}
free(p);
}
我使用指针字符串*p="adhskfjwg"进行程序执行时,怎么在被调用的函数这个语句时出错
for(i=0;i<k;i++)
if(i%2)
{
a[i]=*(p+j);
j++;
}
a[i]不能够被赋值,按理说函数只是把字符串的首地址给了字符数组a[]啊,求解惑???!