diff options
| author | Douglas B. Rumbaugh <doug@douglasrumbaugh.com> | 2025-01-06 13:43:28 -0500 |
|---|---|---|
| committer | Douglas B. Rumbaugh <doug@douglasrumbaugh.com> | 2025-01-06 13:43:28 -0500 |
| commit | ccae870fc6f372a4f9057eb6e405168820789834 (patch) | |
| tree | ad77a4ceaa9261dfd32597abec8941c400427409 /src | |
| parent | ce4be21ca210c61f1e73f8d8432e5d3f8d9e61a5 (diff) | |
| download | math-utils-ccae870fc6f372a4f9057eb6e405168820789834.tar.gz | |
cdf: fixed realloc bug
Diffstat (limited to 'src')
| -rw-r--r-- | src/cdf.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -64,7 +64,7 @@ static void help() { static DistRecord *expand_array(DistRecord *records, size_t *capacity) { (*capacity) *= 2; - DistRecord *new = realloc(records, *capacity); + DistRecord *new = realloc(records, (*capacity*sizeof(DistRecord))); if (!new) { fprintf(stderr, "ERROR: Memory allocation failed\n"); return nullptr; @@ -125,13 +125,13 @@ static int print_data_fp(DistRecord *records, long double *freqs, size_t cnt) { if (ARG_REVERSE_CDF) { long double total_freq = 1.0; for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%lf\n", total_freq, records[i].data.d); + fprintf(stdout, "%.15Lf\t%lf\n", total_freq, records[i].data.d); total_freq -= freqs[i]; } } else { for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%lf\n", freqs[i], records[i].data.d); + fprintf(stdout, "%.15Lf\t%lf\n", freqs[i], records[i].data.d); } } @@ -142,12 +142,12 @@ static int print_data_int(DistRecord *records, long double *freqs, size_t cnt) { if (ARG_REVERSE_CDF) { long double total_freq = 1.0; for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%ld\n", total_freq, records[i].data.i); + fprintf(stdout, "%.15Lf\t%ld\n", total_freq, records[i].data.i); total_freq -= freqs[i]; } } else { for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%ld\n", freqs[i], records[i].data.i); + fprintf(stdout, "%.15Lf\t%ld\n", freqs[i], records[i].data.i); } } @@ -158,12 +158,12 @@ static int print_data_uint(DistRecord *records, long double *freqs, size_t cnt) if (ARG_REVERSE_CDF) { long double total_freq = 1.0; for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%ld\n", total_freq, records[i].data.u); + fprintf(stdout, "%.15Lf\t%ld\n", total_freq, records[i].data.u); total_freq -= freqs[i]; } } else { for (size_t i=0; i<cnt; i++) { - fprintf(stdout, "%Lf\t%ld\n", freqs[i], records[i].data.u); + fprintf(stdout, "%.15Lf\t%ld\n", freqs[i], records[i].data.u); } } |