I just started using MS Visual C++ express to brush up on C\C++

I wrote one little sample program and it ran successfully, then every time after that i kept getting this debug assertion failed error that killed my program.

Here's my code.

#include <iostream>


using std::cout;
using std::cin;


int main(){


int int1, int2, sum; //integers 1, 2, and the sum


cout << "Hello, I will add two integers for you.";


cout << "Please enter the first number: ";
cin >> int1;


cout << "Please enter the second number: ";
cin >> int2;


sum = int1 + int2; //sum of the 2 numbers


cout << "The sum of the numbers is: " << sum;


return 0;
}

It compiles, not sure if it works, but thats not really the point. I don't know what this debug assertion failure is. Any help?

Edited 3 Years Ago by happygeek: fixed formatting

That code is a dodge, don't u..
Assert : typically used to identify logic error by implementing the expression arg to evaluate to false only..
Ex.

char ch = 'a';
assert(ch != 'a') // assertion failure..
//expression is false..

I simplified the code to this and still got the error.

#include <iostream>

using std::cout;

int main(){

	cout << "Hello world!";

	return 0;
}

I can't copy paste the error code so im just retyping it. I apologize.

Debug Assertion Failed!

Program: ...metns\Visual Studio 2008\Projects\Practice\Debug\Practice.exe
File f:\dd\vctools\crt_bld\self_x86\crt\src\fdopen.c
Line 55

Expression: (filedes >= 0 && (unsigned)fildes < (unsigned)_nhandle)

It then mentiosn looking at the visual c++ docmentation.

After i just typed this all out I was looking at the development software and it had a dropdown menu that said debug, and i changed it to an option of release. solved my problem. So that's that I suppose. If anyone knows why I was getting that error in the first place it might save me a headache in the future i suppose. thanks

changing to release mode just tells it not to run the assert commands. that is a TERRIBLE idea because now something is going wrong, its just not telling you! It will come back to bite you for sure!

Use step through in debug mode to see which line the assert fails and let us know.

Dave

So where's the fdopen() call in your code?

Sure you're not compiling release, then running some ancient debug from some previous project?

When you run the code in debug mode, and get an assert, you should be able to view the stack trace of how you got to that point.
Click on each line of the stack trace until you get to your code. Then figure out what parameter you're passing to the current API call is bad.

This article has been dead for over six months. Start a new discussion instead.