char* 给CString 赋值。
按钮监听是这样的://TODO:分析文法inti,non_op_num=0;//算非终结符数目for(i=0;i<strlen(g_buffer);i++){if(g_b...
按钮监听是这样的:
// TODO:分析文法
int i,non_op_num=0;//算非终结符数目
for (i=0;i<strlen(g_buffer);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_len;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<strlen(g_buffer);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<strlen(g_buffer);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操作。 展开
// TODO:分析文法
int i,non_op_num=0;//算非终结符数目
for (i=0;i<strlen(g_buffer);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_len;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<strlen(g_buffer);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<strlen(g_buffer);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操作。 展开
2个回答
展开全部
1. theStr是用地址传入的,会不会在dll的函数里面被修改?
2. theStr分配空间的时候没有清零
3. m_msg = theStr 用VC跟进去看看
4. 如果你没有定义UNICODE宏,那么CSTRING默认采用ANSI处理,你要确保你读到的是ANSI的字符串,否则,干脆就写UNICODE应用
2. theStr分配空间的时候没有清零
3. m_msg = theStr 用VC跟进去看看
4. 如果你没有定义UNICODE宏,那么CSTRING默认采用ANSI处理,你要确保你读到的是ANSI的字符串,否则,干脆就写UNICODE应用
追问
刚刚试过了,不是这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询