|
@@ -307,12 +307,13 @@ void match_double(char p, word_paser *paser){ // 匹配一个double
|
|
|
paser->status = 1;
|
|
|
}
|
|
|
else{
|
|
|
- paser->text = (char *)realloc(paser->text, sizeof(char) * (strlen(paser->text) + 1));
|
|
|
+ paser->text = (char *)realloc(paser->text, sizeof(char) * (len + 2));
|
|
|
if(p == '.'){
|
|
|
paser->status = 2;
|
|
|
}
|
|
|
}
|
|
|
paser->text[len] = p;
|
|
|
+ paser->text[len + 1] = '\0';
|
|
|
}
|
|
|
else{
|
|
|
if(paser->status == 2){ // 必须进入小数模式才可以
|
|
@@ -344,8 +345,9 @@ void match_str(char p, word_paser *paser){ // 匹配一个var字符串
|
|
|
}
|
|
|
else{
|
|
|
if((p != '\'' && paser->status == 1) || (p != '\"' && paser->status == 2)){ // 匹配到最后一个
|
|
|
- paser->text = (char *)realloc(paser->text, sizeof(char) * (len + 1));
|
|
|
+ paser->text = (char *)realloc(paser->text, sizeof(char) * (len + 2));
|
|
|
paser->text[len] = p;
|
|
|
+ paser->text[len + 1] = '\0';
|
|
|
}
|
|
|
else{
|
|
|
paser->status = WAIT_END;
|
|
@@ -362,6 +364,7 @@ void match_var(char p, word_paser *paser){ // 匹配一个var
|
|
|
if(p == '_' || (p <= 'z' && p >= 'a')){
|
|
|
paser->text = (char *)malloc(sizeof(char));
|
|
|
paser->text[len] = p;
|
|
|
+ paser->text[len + 1] = '\0';
|
|
|
paser->status = 1;
|
|
|
}
|
|
|
else{
|
|
@@ -370,8 +373,9 @@ void match_var(char p, word_paser *paser){ // 匹配一个var
|
|
|
}
|
|
|
else{
|
|
|
if(p == '_' || (p <= 'z' && p >= 'a') || (p <= '9' && p >= '0')){
|
|
|
- paser->text = (char *)realloc(paser->text, sizeof(char) * (len + 1));
|
|
|
+ paser->text = (char *)realloc(paser->text, sizeof(char) * (len + 2));
|
|
|
paser->text[len] = p;
|
|
|
+ paser->text[len + 1] = '\0';
|
|
|
}
|
|
|
else{
|
|
|
paser->status = S_END;
|