C++ Program crashes
<p>Why is the following program stuck in a following loop after "Done!", and then ends with a crash?</p>

<pre><code>#include &lt;iostream&gt;
using namespace std;
#include &lt;cstring&gt;

struct stringy{
    char * str;
    int ct;
};

void set(stringy &amp; s, const char * cs);
void show(const char * s, int times=1);
void show(const stringy &amp; s, int times=1);

int main(){
    stringy beany;
    char testing[] = "Reality isn't what it is used to be.";
    set(beany, testing);
    show(beany);
    show(beany, 2);
    testing[0] = 'D';
    testing[1] = 'u';

    show(testing);
    show(testing, 3);
    show("Done!");

    return 0;
}

void set(stringy &amp; s, const char * cs){
    s.ct = strlen(cs);
    strcpy(s.str, cs);
}

void show(const char * s, int times){
    while (times-- &gt; 0){
        cout &lt;&lt; s &lt;&lt; endl;
    }
}

void show(const stringy &amp; s, int times){
    show(s.str, times);
}
</code></pre>
