请问这个代码有哪些错误?实在是不知道哪错了!人已经麻了,X﹏X😪
char * test(char a[]) //或者你可以直接对a数组进行操作
{
int i, j=0, k;
//char m[100]; //不能这样用,除了函数作用域就没用了,
//要想生效,要实际申请内存如下:
char* m = (char*)malloc(100);
if (m == NULL) return NULL;
memset(m, 0, 100);
k = strlen(a);
for (i = k-1; i >= 0; i--) //还有 注意数组的下标是0~len-1
{
*(m+j) = (char)a[i];
j++;
}
printf("m :%s \n", m);
return m;
}
int main(void)
{
char a[100] = {0};
gets_s(a);
printf("a:%s \n", a);
test(a);
printf("a1:%s \n", a);
char* rest = test(a);
printf("a2:%s \n", test(a));
printf("a2:%s \n", rest);
return 0;
}
这里的i可以取0