On Tue, Sep 23, 2003 at 01:14:54PM -0700, Ovid wrote: > Hi all, > > For the life of me, I can't figure out how I am segfaulting. The following is a > minimal test > case. I think something's not getting initialized and thus causing some problem > with memory, but > I can't tell what it is. > > Output from the command line resembles: > > Index = 0. String is 1. Value = 1.000000 > Segmentation fault >
The problem seems to be that looks_like_number is expecting a SV* but you are passing a char*. Not really sure why char* works some time. If you clean out your _Inline directory and run the script perl -MInline=NOISY script.pl then you will see the compiler warnings that indicate you are passing the wrong type. > for (i = 0; i < length; i++) { > SV *elem, **tmp = av_fetch(array, i, 0); > > if (!tmp) > croak("Error fetching array index %i", i); > elem = *tmp; > string = SvPV(elem, PL_na); > if (looks_like_number(string)) { if (looks_like_number(elem)) { > value = atof(string); > printf("Index = %d. String is %s. Value = %f\n", i, string, value); > } > else { > printf("%s does not look like a number\n"); > } > } -- The customer can count on us to authoritatively revolutionize prospective information to exceed customer expectations