2016-07-11 5 views
-4

я определил ниже двух типов,недействительным преобразование из «сопзЬ символ *» в «символ *» ошибки

, когда я использую их в приведенном ниже фрагменте кода, я получаю эту ошибку:

недействительным преобразования из 'const char *' to 'char *' [-fpermissive] tmp = strstr (tmp, delim);

typedef std::vector<PCCHAR> STR_VEC;/
typedef const char * PCCHAR; 
typedef PCCHAR const CPCCHAR; 

STR_VEC split(CPCCHAR delim, CPCCHAR buf) 
{ 
STR_VEC arr; 
char *tmp = strdup(buf); 
while(1) 
{ 
arr.push_back(tmp); 
tmp = strstr(tmp, delim); 
if(!tmp) 
    break; 
*tmp = '\0'; 
tmp += strlen(delim); 
} 
return arr; 
} 
+3

Почему все вещи 'C' в вашем коде на C++? Что не так, просто используя 'std :: string' вместо' strdup', 'strlen' и т. Д.? – PaulMcKenzie

+3

Почему вы смешиваете использование 'char *' с 'std :: string'? Просто используя 'std :: string' вы можете добиться того, чего хотите намного проще. –

+0

платформа я развиваю onis ограничительный .. (intel sgx enclaves) ... – ijuio

ответ

0

в случае, если кто-то encoutering ту же ошибку, ниже фиксированной для меня:

Const символ tmp1 = (Const символ *) TMP; tmp1 = (const char) strstr (tmp, delim);

Смежные вопросы