按钮监听是这样的://TODO:分析文法inti,non_op_num=0;//算非终结符数目for(i=0;i'){non_op_num++;}}m_non_op=newchar[non_op_num+1];mems...
按钮监听是这样的:
// TODO:分析文法
int i,non_op_num=0;//算非终结符数目
for (i=0;i
{
if (g_buffer[i]=='>')
{
non_op_num++;
}
}
m_non_op=new char[non_op_num+1];
memset(m_non_op,0,non_op_num+1);
//文法分割
m_non_ter_op_len=non_op_num;
m_non_ter_op_g=new char*[m_non_ter_op_len];
for (i=0;i
{
m_non_ter_op_g[i]=new char[32];
memset(m_non_ter_op_g[i],0,32);
}
int tp_index=0;
int tp_non_index=0;
for (i=0;i
{
if (g_buffer[i]=='>')
{
tp_index=i;
while(g_buffer[tp_index]!=13)
{
tp_index++;
}
memcpy(m_non_ter_op_g[tp_non_index],g_buffer+i+1,tp_index-i-1);
tp_non_index++;
}
}
//非终结符放入数组,放入界面字符串
int j=0;
for (i=0;i
{
if (g_buffer[i]=='>')
{
m_non_op[j]=g_buffer[i-1];
j++;
}
}
m_non_op[j]=0;
m_NON_TERMINAL_LIST=m_non_op;//到这里的时候就出错了。
运行的时候,有时是可以运行成功的,也有时候运行不成功。但是编译的时候,都会有异常,指针在使用的时候都进行初始化了。没有进行delete操作。
展开