- Race condition - cout is slowing down your program sufficiently to avoid a race condition that otherwise crashes it - Uninitialised variables - use of cout is causing variables that are uninitialised to contain different values, which happen to not crash.