为什么显示Memory space at 0x1000b8(object 'p') is not initialized
#include <stdio.h>
#include <string.h>
void fun(char *str)
{
char *p;
int i=0;
if(*str!='\0'){
fun(str+1);
*p=*str;
}
for(i=0;i<strlen(str)-1;i++){
str[i]=p[i];
}
}
int main()
{
char *a="abcdefg";
fun(a);
printf("%s\n",a);
}
修改如下,供参考:
#include <stdio.h>
#include <string.h>
void fun(char* str)
{
char* p = str, c;
while (*p) p++;
p--;
if (str < p) {
c = *str;
*str = *p;
*p = '\0';
fun(str + 1);
*p = c;
}
}
int main()
{
char a[] = "abcdefg";//char *a = "abcdefg";
fun(a);
printf("%s\n", a);
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char a[]={"abcdef"},k[100];
int u=0;
for(int i=strlen(a)-1;i>=0;i--){
//cout<<a[i];
k[u]=a[i];
u++;
}
printf("%s\n",k);
}
这个地方由于有多个字符
所以要用字符数组