2016-07-11 7 views
-4

私は以下のスニペットでそれらを使用する場合、私はこのエラーを取得し、2種類の下無効な変換

を定義していますから

無効な変換'const char *'から 'char *' [-fpermissive] tmp = strstr(tmp、delim);誰かが、同じエラーをencoutering私のためにそれを固定未満である場合に

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'のものがあるのですか? 'strdup'、' strlen'などの代わりに 'std :: string'を使うだけで何が問題になりますか? – PaulMcKenzie

+3

なぜ 'char *'と 'std :: string'を混在させるのですか? 'std :: string'を使うだけで、もっと簡単にすることができます。 –

+0

プラットフォームは私がonis restrictive ..(intel sgx enclaves)を開発しています... – ijuio

答えて

0

CONSTチャーTMP1 =(CONSTのchar *)TMP。 tmp1 =(const char)strstr(tmp、delim);

関連する問題