API/C memory mananegemnt problem

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Marco Fumana

    #1

    API/C memory mananegemnt problem

    Thank for your help.

    I have try to follow your suggestion but I seem to fail.

    Now my C-module (call it C_Core) code is:

    *************** *************** *************** **
    /* create_list function */
    int size=10000000;

    output=(double *) calloc(size, sizeof(double)) ;
    py_output=PyLis t_New(0);
    for(i=0; i<size; i++){
    tmp=PyFloat_Fro mDouble(output[i]);
    PyList_Append(p y_output, tmp);
    Py_DECREF(tmp); // append adds a reference

    }

    free(outout);

    return py_output;
    *************** *************** *************** *

    with del statement all memory is relased, but I have a malformed list.

    In python shell:
    # Call C function an create a list
    alfa=C_Core.cre ate_list()

    # check the list
    len(alfa)
    10000000
    # OK
    alfa[1]
    Segmentation fault


    On the other size your last option with
    PyList_SET_ITEM (py_output, tmp) statement
    is quick, but I have still memory problem.

    Any idea?

    Thank a lot
    marco
Working...