[Numpy-discussion] PyArray_DIMS problem

Gennan Chen gnchen at mac.com
Wed Dec 20 22:48:58 CST 2006


Here is the definition of that call from ndarrayobject.h

#define PyArray_DIMS(obj) (((PyArrayObject *)(obj))->dimensions)

I believe the memory has been allocated.  It just return a pointer.

Gen

On Dec 20, 2006, at 7:43 PM, Sebastian Haase wrote:

>
>
> On 12/20/06, Gennan Chen <gnchen at mac.com> wrote:
> Hi!
>
>
> I have problem with this function call under FC6 X86_64 for my own  
> numpy extension
>
>
> printf("\n %d %d %d", PyArray_DIM(imgi,0),PyArray_DIM(imgi, 
> 1),PyArray_DIM(imgi,2))
>
>
> it gave me
>
>
> 166 256 256
>
>
> if I tried:
>
>
> int *dim;
> dim = PyArray_DIMS(imgi)
> printf("\n %d %d %d", dim[0], dim[1], dim[2]);
>
>
> it gave me 166 0 256
>
>
> Hi -
> maybe I'm dense here -
> but how is this /supposed/ to work ? Is PyArray_DIMS allocating  
> some memory that never gets freed !?
>  I thought "tuples" in C had to always be passed into a function,  
> so that that function could modify it, as in:
>
> const int maxNDim = 20;
> int dim[maxNDim];
> PyArray_DIMS(imgi,  dim);
>
>
>  What am I missing ... ?
> -Sebastian
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20061220/5c1cc341/attachment.html 


More information about the Numpy-discussion mailing list