Frees memory returned from an IMSL C Stat Library function.
#include <imsls.h>
void imsls_free (void *data)
void *data
(Input)
A pointer to data returned from an IMSL C Stat Library
function.
The function imsls_free frees memory using the C runtime library used by the IMSL C Stat Library for allocation. It is a wrapper around the standard C runtime function free.
Function imsls_free can always be used to free memory allocated by the IMSL C Stat Library, but is required if an application has linked to multiple copies of the C runtime library, with each copy having its own set of heap allocation structures. In this situation, using the C runtime function free can result in memory being allocated with one copy of the C runtime library and freed with a different copy, which may cause abnormal termination. Using imsls_free ensures that the same C runtime library is used for both allocation and freeing.
Note that imsls_free should only be used to free memory that was allocated by IMSL C Stat Library.
This example computes a set of random numbers, prints them, and then frees the array returned from the random number generation function.
#include <imsls.h>
#include <stdio.h>
int main()
{
int seed = 123457;
int n_random = 5;
float *r;
imsls_random_seed_set (seed);
r = imsls_f_random_normal(n_random, 0);
printf("%s: %8.4f%8.4f%8.4f%8.4f%8.4f\n",
"Standard normal random deviates",
r[0], r[1], r[2], r[3], r[4]);
imsls_free(r);
}
Standard normal random deviates: 1.8279 -0.6412 0.7266 0.1747 1.0145