Carlos Konstanski wrote: > I have a C++ function I'm writing; see below. I'm new to C++, and the > implementation details tend to bite me where the sun don't shine > whenever they can. > > The function works as intended. But later attempts to use the value > that I passed in as rawInput cause an error in Visual C++. GNU C++ > does not give me any error. Nevertheless, I think that there must be a > problem here. I suspect that the pointer charSequence must need to be > freed. Carlos: As I see it, charSequence is an automatic variable in bool numericP(string rawInput) and the space for that variable does not need to be freed.
If you attempt to free what charSequence points to after charSequence = rawInput.c_str(); then you are attempting to free memory starting at the address that rawInput.c_str() returned. I know nothing of rawInput, but I suspect you don't want to free that memory here. I suspect that wherever the rawInput structure / class was "newed" is where that should happen and the rawInput structure / class should free the memory holding the string. Is it possible that rawInput is some sort of utility that handles deleting / newing when rawInput is updated? Wayne > But I cannot find any way to do this that compiles. > > Is this my problem? If so, how do I free charSequence? > > Carlos > > > bool numericP(string rawInput) { > bool legalCharsP = true; > int numDecimalPoints = 0; > int i = 0; > const char *charSequence = rawInput.c_str(); > while(i < rawInput.size() && legalCharsP && numDecimalPoints <= 1) { > // the first char can be a -, ., or a digit; all others must > // be a . or a digit; but there can be only one or less .'s > if(! ((i == 0 && charSequence[i] == 0x2d) || > ((charSequence[i] >= 0x30 && charSequence[i] <= 0x39) || > charSequence[i] == 0x2e))) { > legalCharsP = false; > } else if(charSequence[i] == 0x2e) { > numDecimalPoints++; > } > i++; > } > return (legalCharsP && numDecimalPoints <= 1); > } > _______________________________________________ > PLUG mailing list > PLUG@lists.pdxlinux.org > http://lists.pdxlinux.org/mailman/listinfo/plug > > > _______________________________________________ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug