char* und char[]
-
hey kann mir jemand sagen wo der unterschied liegt?
ich dachte der compiler würde beim kompilieren sowieso alle '[]' in '*' umwandeln.
wieso funktioniert dann das beispiel nicht mit '*'
#include <iostream> #include <string> #include "rapidxml.hpp" using namespace std; using namespace rapidxml; int main ( ) { char x[] = "<Something>Text</Something>\0" ; //<<<< funktioniert, aber mit '*' nicht xml_document<> doc ; doc.parse<0>(x) ; cout << "Name of my first node is: " << doc.first_node()->name() << endl ; xml_node<>* node = doc.first_node("Something") ; cout << "Node 'Something' has value: " << node->value() << endl ; }Wenn ich es so schreibe 'char* x' kommt eine Warnung:
warning: deprecated conversion from string constant to ‘char*’
wäre dankbar für eine erklärung

danke!
-
1. Ist das nur eine Warning. Kein Fehler.
2. Nein ein Zeiger und Array sind nicht das gleiche.
3. Wenn überhaupt wäre der korrekte Typ
const char*und der sollte auch ohne warning gehen.