Hey so i\'m using the pdCurses lib and stringStream to calculate and make a 5 character long string that represents a clock. It shows like 00:00, 0:00, 00.00, or 0.000. However
I think you're mistaken about what's throwing the exception. Where is ss
defined?
NB if you reformat your code to a more canonical style, like
if((int)time >= 10){
if((int)time >= 60){
if((int)time >= 600){
time_s.insert(0, min); // 00:00
time_s.insert(time_s.begin()+2, ':');
time_s.insert(4, sec);
} else {
with one statement per line, the exception will tell you much more closely which statement caused the problem.
This is a memory system assertion, it usually is triggered by allocating memory when the heap has already been corrupted. The trigger was probably this:
time_s.insert(0, min);
However, the problem is somewhere else--somewhere where you are overwriting memory that you shouldn't.
There's not really enough to go on here, but my guess is that the assertion is from the time_s.insert(0, min)
call that's in the line along with the if((int)time >= 600)
- the string is performing some reallocation and the heap has been corrupted (maybe by whatever is happening in the loop at the top of the function, but maybe somewhere else entirely).
If you run this in a debugger and have it catch the assertion, what does the call stack look like?
What's happening in:
for(int r = 0;r<nrows;r++){ move(r,0);
instr((char*)_contents[r].c_str());}