Game of life C++ implementation memory access bug
Stop doing manually memory management (this is not C).
Organism** plain;

There is no reason to have an array of pointers. You could just have an array of object (thus you don't need to manage the individual cells).
Organism*  plain;
....
plain = new Organism[width * height]; // Allocates and calls default constructor.
                                      // You will still need to loop over
                                      // them to reset them to an initial good
                                      // state (but you will not have) to
                                      // manage the memory for individual cells.

Because the cells are no longer pointers you will need to replace -&gt; with . (a dot). But other than than no difference.
Part 2 of memory management
Take this a step further. You don't need to manually manage the memory for the array of plain. We have classes that do that for you.
std::vector&lt;Organism&gt;  plain;        // initially this holds zero elements
...

plain.reserve(width * height);       // Let the object know you are going to
                                     // add a lot of cells so it can pre-allocate space.

for (int i = 0; i &lt; (width * height); i++) {
    state = rand() % 100 &lt; chance;
    plain.emplace_back(state);       // add a new element to the end.
    // If you are using C++03 you may not have emplace_back()
    // So use the regular push_back instead (it does the same thing).
    //    plain.push_back(Organism(state));
}

You can access plain (a std::vector&lt;&gt;) with operator [] like you would an array. So no other code needs to change (you just need any new or delete calls). So you have no memory management calls and thus no headaches with leaks.
Now a nice bit is you can replace plain[x] with plain.at(x) and it checks to make sure you access to the array is in bounds (and will throw an exception if not). This may help you track down your error.
Initialize srand() one
You should only initializre the random number generator once in a program.
srand(time(nullptr));

So it is best to do this in main(). In your application you are doing this once for each game object. This may not seem like a big thing. But of your code get's re-used by another application that does not realize you are doing this. You mess up other people's code.
You should also note. This old random number generator is considered pretty bad. You should probably start looking at the new ones provided by C++11. They are much better and can be used in ways that don't interact (so you don't screw over other people's random numbers).
Move Platform specific code to its own function.
Sleep(500);
system(&quot;cls&quot;);

You should probably put this in its own function. So when people come to port your code to another platform they just need to provide an alternative implementation to a couple of specific functions and the rest of the code can stay the same.