помогите найти ошибку в коде с++
<img title="помогите найти ошибку в коде с++" src="//sprtqa.b-cdn.net/download/e941480fd419da189e28ab6526cfe828_i-5.jpg" >
вот такой вот код
#include "work_4.h"
#include <cstring>
#include <iostream>
using namespace std ;
bool isspacearr(char* d)
{
int b(0), i(0);
for (; *d!='\0'; b++,d++)
{
if (isspace (*d))
i++;
}
d=d-b;
if (i>0)
return 1;
else
return 0;
}
int main ()
{
char tmp [80];
char* d;
d = tmp;
while(true) {
cin.getline (tmp, 80);
if (isspacearr(tmp))
{
char *z;
char *p;
p=new char [161];
int i;
for( i = 0; d != '\0';d++,p++,i++)
{if ( ispunct(*d) && ! isspace (*(d+1)))
{
*p=*d;
p++;
*p=' ';
i++;
}
else *p=*d;
}
z = p;
p = p-i;
for( i=0; p!=z; p++, i++)
{if ( isdigit(*p))
{
*p = *z;
z--;
for ( ; p != z; p++)
*p = (*(p+1));}
p=p-i;
cout<<p;><img title="помогите найти ошибку в коде с++" src="//sprtqa.b-cdn.net/download/e941480fd419da189e28ab6526cfe828_i-6.jpg" >
ошибка вроде как в том месте программы, которая отвечает за вставку пробелов.
исчез конец вопрос.. .
при компиляции ошибок не выдает, но при выполнении, после ввода строки с пробелами, вылезает ошибка