[EMAIL PROTECTED] (Sisyphus) writes:

[...]

> SV * create_struct(SV * s, int v) {
>       Card c, * cptr;
>       cptr = &c;
>       c.suit = s;
>       c.value = v;
>       printf("%s %d\n", SvPV_nolen(cptr->suit), cptr->value);
>       return sv_setref_pv(newSViv(0), Nullch, cptr);
> 
> }

[...]

> Maybe I've got 'create_struct()' returning something inappropriate ?

Yup- the storage allocated to Card c vanishes once the create_struct 
function returns. You need to allocate memory for the Card (with 
malloc() or some equivalent) and then have cptr point that location.

-- 
Joe Schaefer

Reply via email to