mehrdim. char Arrays
Re: mehrdim. char Arrays
Hallo!
Habe ich schon durch... FileName statt &FileName gibt:
warning: passing arg 1 of `strcpy' makes pointer from integer without a cast
Ich glaube es liegt daran, das MainFileName als char* definiert ist, das kommt allerdings aus den libs der Firma mit denen ich arbeite.
Der andere Fehler: strcpy(includes[inclzahl],inclname); liefert dasselbe Verhalten!
Ciao
Jürgen
Habe ich schon durch... FileName statt &FileName gibt:
warning: passing arg 1 of `strcpy' makes pointer from integer without a cast
Ich glaube es liegt daran, das MainFileName als char* definiert ist, das kommt allerdings aus den libs der Firma mit denen ich arbeite.
Der andere Fehler: strcpy(includes[inclzahl],inclname); liefert dasselbe Verhalten!
Ciao
Jürgen
"21" ist nur die halbe Wahrheit...
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: mehrdim. char Arrays
Wie gesagt... Filename muss auch Platz für mehr als einen Buchstaben bieten.Bruno hat geschrieben:Habe ich schon durch... FileName statt &FileName gibt:
warning: passing arg 1 of `strcpy' makes pointer from integer without a cast
1 Buchstabe:
Code: Alles auswählen
char Filename;
Code: Alles auswählen
char Filename[256];
Wenn Du nur einen Buchstaben hast (Datentyp char) und den Adressoperator anwendest, dann ist das der Datentyp (char *), also der erste von beliebig vielen Buchstaben. Wir wissen, es ist nur einer, aber der Computer soll da reichlich Daten reinschreiben.
Das glaube ich nicht, daBruno hat geschrieben:Der andere Fehler: strcpy(includes[inclzahl],inclname); liefert dasselbe Verhalten!
Code: Alles auswählen
strcpy(&includes[inclzahl][80],inclname);
Code: Alles auswählen
strcpy(includes[inclzahl+1],inclname);
Code: Alles auswählen
strcpy(includes[inclzahl],inclname);
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: mehrdim. char Arrays
Gerade in solchen Fällen ist GDB unglaublich nützlich um schnell auf Fehler draufzukommen 
Setz doch vor den vermuteten Problemstatements einen breakpoint, und sieh dir mal ganz genau an was da überall im Speicher steht. Achte auch auf den Typ (Char, Char Array oder Zeiger auf Char Arrays).

Setz doch vor den vermuteten Problemstatements einen breakpoint, und sieh dir mal ganz genau an was da überall im Speicher steht. Achte auch auf den Typ (Char, Char Array oder Zeiger auf Char Arrays).
Haters gonna hate, potatoes gonna potate.
Re: mehrdim. char Arrays
Hallo!
Das Problem ist mittlerweile gelöst (war genau so wie oben beschrieben!) und ich werde mich um ein Compiler update kümmern müssen.
Ein Kollege hat mir mit einem anderen Compiler noch ein paar "Unschönheiten" in meinem Code gezeigt.
ich denke, daß mir der aktuelle Compiler einfach zuviel "durchgehen" läßt.
Ciao
Jürgen
Das Problem ist mittlerweile gelöst (war genau so wie oben beschrieben!) und ich werde mich um ein Compiler update kümmern müssen.
Ein Kollege hat mir mit einem anderen Compiler noch ein paar "Unschönheiten" in meinem Code gezeigt.
ich denke, daß mir der aktuelle Compiler einfach zuviel "durchgehen" läßt.
Ciao
Jürgen
"21" ist nur die halbe Wahrheit...
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: mehrdim. char Arrays
Ja, das ist Grundsätzlich ein großes Problem des GCC. Es empfiehlt sich jedes Programm mit den Flags "-Wall -pedantic -ansi" zu kompilieren. Dann ist zwar "-pedantic" wirklich Pädantisch, aber zumindest hilft dir die Statische analyse deinen Code sauber zu halten.Bruno hat geschrieben:ich denke, daß mir der aktuelle Compiler einfach zuviel "durchgehen" läßt.
Haters gonna hate, potatoes gonna potate.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: mehrdim. char Arrays
Och, Visual C++ kann das aber auch. Die Fehlermeldungen des GCC empfinde ich als deutlich aussagekräftiger.fat-lobyte hat geschrieben:Ja, das ist Grundsätzlich ein großes Problem des GCC.Bruno hat geschrieben:ich denke, daß mir der aktuelle Compiler einfach zuviel "durchgehen" läßt.
Volle Zustimmung. Moderne C++-Compiler bieten hervorragende Unterstützung der semantischen Analyse, auf die man auf keinen Fall verzichten sollte.fat-lobyte hat geschrieben:Es empfiehlt sich jedes Programm mit den Flags "-Wall -pedantic -ansi" zu kompilieren. Dann ist zwar "-pedantic" wirklich Pädantisch, aber zumindest hilft dir die Statische analyse deinen Code sauber zu halten.
Kapselt man die von Dir zu lösenden Probleme entsprechend in überschaubare Klassen, lässt sich performante und sehr sichere Software erstellen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: mehrdim. char Arrays
Eine Kombination aus GCC und MSVC hat sich für mich als durchaus ernsthaften Check herausgestellt. Manche Dinge findet man einfach nur, wenn man mit versch. Compilern kompiliert.Xin hat geschrieben:Och, Visual C++ kann das aber auch. Die Fehlermeldungen des GCC empfinde ich als deutlich aussagekräftiger.
Hab jetzt letztens nen neueren Compiler auf der Landschaft gesehen: LLVM(für C/C++: clang). Der sieht recht vielversprechend aus:Xin hat geschrieben:Volle Zustimmung. Moderne C++-Compiler bieten hervorragende Unterstützung der semantischen Analyse, auf die man auf keinen Fall verzichten sollte
Mal ausprobieren, wie der in meine Landschaft passt...http://clang.llvm.org/diagnostics.html hat geschrieben:Code: Alles auswählen
$ gcc-4.2 -fsyntax-only t.c t.c:7: error: invalid operands to binary + (have 'int' and 'struct A') $ clang -fsyntax-only t.c t.c:7:39: error: invalid operands to binary expression ('int' and 'struct A') return y + func(y ? ((SomeA.X + 40) + SomeA) / 42 + SomeA.X : SomeA.X); ~~~~~~~~~~~~~~ ^ ~~~~~

Haters gonna hate, potatoes gonna potate.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: mehrdim. char Arrays
Ich benutze ebenfalls beide. Alle paar Monate jage ich die Sachen durch Visual Studio und da sind meistens dann doch noch 2, 3 Dinge, die klever bemängelt werden.fat-lobyte hat geschrieben:Eine Kombination aus GCC und MSVC hat sich für mich als durchaus ernsthaften Check herausgestellt. Manche Dinge findet man einfach nur, wenn man mit versch. Compilern kompiliert.Xin hat geschrieben:Och, Visual C++ kann das aber auch. Die Fehlermeldungen des GCC empfinde ich als deutlich aussagekräftiger.
Nice. Das kommt schon fast an den Stil von SAS/C ran. Auf dem Compiler habe ich gelernt und mich häufig geärgert, dass die Fehlermeldungen häufig so eindeutig waren, dass er sie nicht automatisch gleich korrigiert und durchkompiliert.fat-lobyte hat geschrieben:Hab jetzt letztens nen neueren Compiler auf der Landschaft gesehen: LLVM(für C/C++: clang). Der sieht recht vielversprechend aus:Mal ausprobieren, wie der in meine Landschaft passt...http://clang.llvm.org/diagnostics.html hat geschrieben:Code: Alles auswählen
$ gcc-4.2 -fsyntax-only t.c t.c:7: error: invalid operands to binary + (have 'int' and 'struct A') $ clang -fsyntax-only t.c t.c:7:39: error: invalid operands to binary expression ('int' and 'struct A') return y + func(y ? ((SomeA.X + 40) + SomeA) / 42 + SomeA.X : SomeA.X); ~~~~~~~~~~~~~~ ^ ~~~~~
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: mehrdim. char Arrays
Interessant.Hab jetzt letztens nen neueren Compiler auf der Landschaft gesehen: LLVM(für C/C++: clang). Der sieht recht vielversprechend aus:
Kenne ich nun noch einen C/C++-Compiler, neben MSVC, GCC, Intel C, Borland C++ und Digital Mars C++.
Sind ja doch schon eine Menge Unterschiedliche, da frage ich mich doch, wozu das ganze?
Ja, Intel hat immer die Aktuellsten und neusten features Implementiert, Microsoft hat ein auf Windows angepasstest Produkt, Borland ist ein alter Hase, GNU brauchte was eigenes, Quelloffenes und Digital mars versucht sich auch auf HPC zu spezialisieren und LLVM setzt sich selber auch die Performance Krone auf.
Mich würde es nun doch mal Interessieren, in wie fern die sich jetzt bei Alltäglichen aufgaben Unterscheiden?
Es können ja schließlich nicht alle gleichzeitig schneller als alle anderen sein

Mal sehn, vlt bastel ich mir mal ein Test zusammen.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum