On Tue, Feb 14, 2006 at 12:12:01PM -0500, Guohong Hu wrote:
> MaizeHi I am a new user of Inline. So could somebody help me here?
> 
> I am trying to write a C subroutine with Inline. I want to pass the reference 
> of an array to the subroutine for calculation, and work on the values in the 
> array. The following is my code:
> 
> 
> Thanks a lot,
> Robbie

I havn't played with inline in a while but the below should
work ok.

use Inline C=>'DATA';

my @array = ( 1 .. 100 );

print get_an_element([EMAIL PROTECTED])."\n";
__DATA__
__C__

SV* get_an_element(SV* aref)
{

        AV* array;

        if (! SvROK(aref))
                croak("aref is not a reference");

        array = (AV*)SvRV(aref);

        SV** v = av_fetch(array,8, 0);
        if( v == NULL )
           croak("not enough elements in array");
   
        SV* ret = *v;
        SvREFCNT_inc(ret);

        return ret;
}




-- 
The customer can count on us to globally utilize enterprise-wide data and 
assertively engineer scalable intellectual capital to stay competitive 
in tomorrow's world

Reply via email to