このプログラムを正しくコンパイルできません。これは、単独でリンクされたリストのプログラム用です。この特定の関数は、文字列に何かを変換しないために私には駄目を与えていますが、私はそれを見ることができません。この関数がchar *の代わりに文字列を受け入れる必要があるという別の問題を解決するように私に言った人から助けを得ました。私は文字列でchar *を置き換えることに関連するすべてのエラーを修正したと思ったが、この最後のものを修正することはできないようだ。私を助けてください!後者は(あなたがchar*
にstd::string
を割り当てることはできませんなぜ私はエラーが発生します: 'std :: string {aka std :: basic_string <char>}'を代入で 'char *'に変換できませんか?
struct List_Node {
char* textLine;
List_Node* nextEle;
};
:あなたのList_Node
クラスは、次のように多少定義されていることを、私が想定し、エラーメッセージから
List_Node *listTextEditor::create_node(string value)//creates the list elements
{
struct List_Node *tempNode, *s;
tempNode = new(struct List_Node);
if (tempNode == NULL)
{
cout << "Memory not allocated " << endl;//if theres nothing in the list
return 0;
}
else
{
tempNode->textLine=value ; //This puts stuff in the current node and creates/moves to the next. THIS IS WHERE THE PROBLEM IS!!!!!!!!!
tempNode->nextEle = NULL;
return tempNode;
}
}
はtextLineです。文字列クラスのメンバーデータですか? – Raindrop7
'std :: string'から(変更可能な)' char * 'への暗黙的な変換はありません。プラス、あなたの問題とは無関係です: 'if(tempNode == NULL)'は決して 'true'と評価できません。 [operator new](http://en.cppreference.com/w/cpp/memory/new/operator_new)の動作を参照してください。 – IInspectable
クラスのサンプルを追加するインターフェイス – Raindrop7