diff --git a/libs/string.h b/libs/string.h index 343c951..b031ba7 100644 --- a/libs/string.h +++ b/libs/string.h @@ -36,18 +36,22 @@ void strCopy(string* s1, string* s2) { // ------------------------------------- // CONVERT - different convert to str // ------------------------------------- +int numLen(double num) { + return snprintf(NULL, 0, "%lf", num); +} + char* int2Str(int* num) { - char* buffer = malloc(12); + char* buffer = malloc(numLen(*num) + 2); sprintf(buffer, "%d", *num); return buffer; } char* float2Str(float* num) { - char* buffer = malloc(41); + char* buffer = malloc(numLen(*num) + 2); sprintf(buffer, "%f", *num); return buffer; } char* double2Str(double* num) { - char* buffer = malloc(311); + char* buffer = malloc(numLen(*num) + 2); sprintf(buffer, "%lf", *num); return buffer; }