Chapter 15: Utilities

free

Frees memory returned from an IMSL C Stat Library function.

Synopsis

#include <imsls.h>

void imsls_free (void data)

Required Arguments

void *data  (Input)
A pointer to data returned from an IMSL C Stat Library function.

Description

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. 

Example

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);

}

Output

Standard normal random deviates:   1.8279 -0.6412  0.7266  0.1747  1.0145


Visual Numerics, Inc.
Visual Numerics - Developers of IMSL and PV-WAVE
http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260