Exception class EInvalidOp: invalid floating point operation (x-posted w/ borland.cppbuilder.cpp)

J

jawilson

Hello,

I am working on a project in Borland Developer Studio 2006, and am
running into an error I
don't understand. Here is the relevant code:

//---------------------------------------------------
double splitLoc = 0, fs = 512;
double timeRange[3];
int tArr[3];

// these values come from a file, and just happen to be in the one I am
using now
timeRange[0] = -1.5;
tArr[0] = 0;
tArr[2] = 0;

// This is where the error occurs
splitLoc += timeRange[0] * fs; //this is fine
splitLoc += (double)(tArr[2] - tArr[0]);
//----------------------------------------------------

This last line always throws the exception:
First chance exception at $7C81EB33. Exception class EInvalidOp with
message 'Invalid floating point operation'. Process test.exe (3040)

The program compiles fine, so what else could be causing this?
Thanks!
Adam
 
D

Daniel T.

"jawilson said:
Hello,

I am working on a project in Borland Developer Studio 2006, and am
running into an error I
don't understand. Here is the relevant code:

//---------------------------------------------------
double splitLoc = 0, fs = 512;
double timeRange[3];
int tArr[3];

// these values come from a file, and just happen to be in the one I am
using now
timeRange[0] = -1.5;
tArr[0] = 0;
tArr[2] = 0;

// This is where the error occurs
splitLoc += timeRange[0] * fs; //this is fine
splitLoc += (double)(tArr[2] - tArr[0]);
//----------------------------------------------------

This last line always throws the exception:
First chance exception at $7C81EB33. Exception class EInvalidOp with
message 'Invalid floating point operation'. Process test.exe (3040)

The program compiles fine, so what else could be causing this?
Thanks!
Adam

I wrapped your code in main and it works fine... If that last line is
throwing an exception, it's being cause by something other than what you
posted. Chances are, some code is going past an array boundary.
 
J

jawilson

When I opened the project in C++Builder 6 instead of the new version
(BDS 2006), it ran fine. Nothing in the code changed, and I'm pretty
certain that the code is not going past an array boundary. This seems
to be a borland config issue, and not a C++ issue now, but I'm still
hoping someone might have an answer.
Adam
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,563
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top