为什么这段程序会崩溃呢
```c++
#include <iostream>
#include <string>
using std::string;
struct ROLE
{
string id;
int exp;
};
int main()
{
int count=0;
int s_begin_id=0;
int s_end_0=0;
string strData="id=tonyclare;exp=9532;id=sunny;exp=4214;id=simplle;exp=2134;id=tom;exp=234;";
for (int i=0;i<strData.length();i++)
{
if (strData[i]==';')
{
count++;
}
}
count=count/2;
struct ROLE *pRole=new ROLE[count];
for (int i=0;i<count;i++)
{
int s_begin_id=strData.find("id=",s_begin_id);
int s_end_0=strData.find(";",s_begin_id);
string strOut_id=strData.substr(s_begin_id+3,s_end_0-s_begin_id-3);
pRole[i].id=strOut_id;
s_begin_id=s_begin_id+3;
std::cout<<pRole[i].id<<std::endl;
}
system("pause");
return 0;
}
```