#include<stdio.h>
#include<string.h>
#include<malloc.h>
char *str_rev(char s[]){
static char *st = NULL;
static char *l;
int i = 0,c = 0;
st = malloc((strlen(s) * sizeof(*s))+1);
*l = st;
if(s == NULL){
return "INVALID PARAMS";
}
for(i=0;s[i]!='\0';i++){
;
}
for(c=i;c >=0;c--){
*l++ = s[c];
}
l = '\0';
return st;
}
int main(){
char a[]="Angus Declan R";
printf("\n %s \n",str_rev(a));
return 0;
}
如何釋放在func str_rev()中使用malloc()分配的內存,因爲我需要重新運行反向字符串。顛倒C中的字符串
前這是您真正的代碼?它不會編譯。 – 2013-03-09 19:07:13
請用問題陳述和幾句話來解釋您的解決方案,以改善您的問題。 – 2013-03-09 19:07:27
@ nm:是的,這是我的真實代碼。它的編譯,但字符串沒有得到相反的順序打印。 – Angus 2013-03-09 19:11:10