这样会有内存泄露吗?
RT.
#include <stdio.h>#include <stdlib.h>char *trdec(int idec, int ibase);int main(){ int n, b; char *s; n = 100; b = 8; s = trdec(n, b); printf("%d -> %d : %s\n", n, b, s); free(s); return 0;}char *trdec(int idec, int ibase){ char *strdr = malloc(sizeof(char) * 20); char t; int i, idr, p = 0; while(idec != 0) { idr = idec % ibase; if(idr >= 10) { strdr[p++] = idr + 55; } else { strdr[p++] = idr + 48; } idec /= ibase; } for(i = 0; i < p / 2; i++) { t = strdr[i]; strdr[i] = strdr[p - i - 1]; strdr[p - i - 1] = t; } strdr[p] = '\0'; return strdr;}