| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: C-"Return makes integer from pointer without cast"-Problem im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hey Leute. Ich bin's mal wieder. Dieses Mal gibts ein kleines Code-Problem. Code: int search_letter(char letter,char *text) { while(*text) ...
![]() |
| | #1 (permalink) |
| Registriert seit: 06.03.11 ![]() Likes: 0 | Anzeige Hey Leute. Ich bin's mal wieder. Dieses Mal gibts ein kleines Code-Problem. Code: int search_letter(char letter,char *text)
{
while(*text)
{
if(*text=letter)
return 1;
else
*text++;
}
return 0;
} Wenn ich diese jetzt benutz' , dann erhalte ich von Dev C++ immer die Warnung "Return makes integer from pointer without cast". Und ich verstehs einfach nich warum diese Meldung kommt. Eine Erklärung wäre ganz nice (Kein "Ja weil das Return einen Integer vom Zeiger ohne Cast macht" Lg ev0luti0n |
| | |
| | #2 (permalink) |
| Senior Member | Code: if(*text=letter) ![]() Der Vergleich von einem Pointer mit einem Char macht aber imho auch wenig Sinn, aber für eine genaue Erklärung ist mein Zeit mit C zu lang her |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Welche GCC-Version verwendest du? Ich kann den Fehler mit GCC 4.2 nicht nachvollziehen. Code: bitmuncher@alpha:~> gcc --version i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. bitmuncher@alpha:~> gcc -c -Wall test.c test.c: In function 'search_letter': test.c:3: warning: suggest parentheses around assignment used as truth value test.c:6: warning: value computed is not used
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #4 (permalink) |
| Themenstarter Registriert seit: 06.03.11 ![]() Likes: 0 | Hey Danke für die Anmerkung hmmm. Es liegt also schon an der Parameterübergabe. Aber an was genau*grübel* |
| | |
| | #5 (permalink) | |
| Themenstarter Registriert seit: 06.03.11 ![]() Likes: 0 | Zitat:
) | |
| | |
| | #6 (permalink) | |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Zitat:
Code: if((int)*text == (int)letter)...
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ | |
| | |
| | #7 (permalink) | |
| Themenstarter Registriert seit: 06.03.11 ![]() Likes: 0 | Also mit den Casts geht es auch nicht... Die Warnings sind die selben , jedoch hab ich oben n Teil weggelassen. Sorry Also ich verwende sie im Code bei Zitat:
PS: Was ist -wall?(eine Compiler-Anweisung , damit dieser nicht automatisch castet?) und gibt es Möglichkeiten solche Bedingungen zu optimieren(Bin noch ein Newbie)? | |
| | |
| | #8 (permalink) |
| Senior Member | Du solltest die Methode ändern wie du dir C beibringen willst. Ich seh in deinem Code auf den ersten Blick mindestens 5 grundsätzlich Fehler. Such dir ein Buch/Tutorial was wirklich bei Hello World anfängt und arbeite dich schrittweise weiter. Punkt für Punkt. |
| | |
| | #9 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | -Wall sorgt dafür, dass der Compiler sämtliche Warnungen auswirft, auch zu unsauberem Code u.ä.. Oft findet man so Fehler, auf die man sonst nicht aufmerksam wird, weil ihre Ursache in "fehlerhaften" Code davor zu finden ist. Beim Entwickeln sollte man diesen Parameter immer nutzen. Probier's mal mit diesem Parameter und poste die Warnungen + zugehörigen Code, denn momentan kann ich deinen Fehler nicht nachvollziehen: Code: bitmuncher@alpha:~> cat test.c
int search_letter(char letter,char *text) {
while(*text) {
if(*text==letter)
return 1;
else
*text++;
}
return 0;
}
bitmuncher@alpha:~> gcc -c -Wall test.c
test.c: In function 'search_letter':
test.c:6: warning: value computed is not used
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #10 (permalink) | |
| Themenstarter Registriert seit: 06.03.11 ![]() Likes: 0 | Zitat:
| |
| | |
| | #11 (permalink) |
| Registriert seit: 03.05.07 ![]() ![]() Likes: 50 | Code: *text++; Code: text++; Und, kleiner Tipp am Rande, wenn du sowieso nur 0 oder 1 zurückgibst tuts ein bool als Rückgabewert auch. Ist leichter zum Lesen und verhindert somit Fehler. Ich weiß nicht wo odigo die Unmengen an restlichen Fehlern findet, aber vielleicht bin ich einfach zu müde, als dass ich sie sehen würde. ![]() Kannst du bitte sagen bei genau welcher Zeile der Compiler meckert? Ich schätze mal die Zeilenangabe steht bei der Fehlermeldung dabei. mfg benediktibk |
| | |
| | #12 (permalink) |
| Senior Member Registriert seit: 13.07.08 ![]() ![]() ![]() Likes: 85 | Besorg die mal das aktuelle Codeblocks-Release mit einem GCC von hier -> TDM-GCC
__________________ "It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."+++ BREAKING +++ Troll ertrinkt im Planschbecken +++ |
| | |
| | #13 (permalink) |
| Themenstarter Registriert seit: 06.03.11 ![]() Likes: 0 | Den Error gibt er in der Zeile mit dem Aufruf den Funktion... Zu der Software:Habe mir gestern schon CodeBlocks geholt. Ist wirklich um einiges besser. |
| | |
| | #14 (permalink) | |
| Registriert seit: 01.04.11 ![]() Likes: 0 | Zitat:
Bsp. Code: int *pi,*pi2;
pi2=pi;
*pi++=5;
*pi=99;
printf("%i\n%i",*pi2,*pi); Geändert von Alighieri (01.04.11 um 19:42 Uhr) | |
| | |
| | #15 (permalink) |
| Registriert seit: 17.04.06 ![]() Likes: 3 | Viele Standardfunktionen gibt es ja in C nicht, aber die es gibt sollte man nutzen. z.B.: strchr um ein Zeichen zu suchen.
__________________ http://chm0815.blogspot.com |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |