ERLEDIGT
JA
JA
ANTWORTEN
17
17
ZUGRIFFE
9258
9258
EMPFEHLEN
-
Hallo Leute,
ich habe ein Problem mit der definition von einen char Array.
hier der Code:
mein Ziel ist es einfach verschdieden lange Wörtet maximal mit der länge 80Code :1 2 3 4 5 6 7 8
int main() { char feld[2][80] = {"gammel","held"}; feld[1] = "blaa"; printf("%s %s \n", feld[0], feld[1]); return 0; }
in einen Array zu Speicher.
Die Definition klappt ohne probleme in char feld[2][80] = {"gammel","held"}; aber wenn ich mit feld[0] = "bla" den ersten Feld im Array ein neues Wort zu weisen will kommt immer die Fehlermeldung bei kompilieren:
"warning: assignment makes integer from pointer without a cast"
danke schonmal im voraus für eure hilfe.
MFG meccan
-
03.05.07 15:55 #2
Hi,
probiers mal mit...
Code :1 2
char feld[2][80] = {"gammel","held"}; strcpy(feld[1],"blaa");
... dann klappts auch mit dem Kompilieren
Gruß,
Peter
Und übrigens hast du ein 2-Dimensionales char-Array, kein char-Array
Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
dank dir hat alles funtkioniert.
Ja stimmt hab ein zweidimensionales Char-Array, aber eigentlich
ja auch nur ein eindimensionales welches Zeicheketten speichert

MFG Meccan
-
und schon gibts das nächste Problem.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
void printArray(char feld, int length) { //einfache und foramtierte Ausgabe des array's } int main() { int length = 2; char feld[length][80] = {"gammel","held"}; strcpy(feld[1],"blaa"); printArray(feld, length); return 0; }
wenn ich nun versuche die Funktion printArray mit den Argumenten aufzurufen
bekomm ich die Fehlermeldung:
"warning: passing arg 1 of `printArray' from incompatible pointer type"
hoffe du kannst mir auch da weiterhelfen.
mfg meccan
-
03.05.07 16:23 #5
Hallo,
das ist doch offensichtlich.
Deine Funktion erwartet als erstes Argument ein char, du bigst ihm aber einen Pointer auf ein 2-Dimensionales char-Array.
Deine Deklaration muss so aussehen :
Code :1 2 3 4 5
void testArray(char (*feld)[80] , int len) { { //einfache und foramtierte Ausgabe des array's // Hier kannst du mit feld arbeiten wie in der aufrufenden Funktion !" }
Viel Erfolg weiterhin,
PeterDer Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
und noch einmal vielen dank
-
03.05.07 16:36 #7
Keine Ursache.
Vergiss bitte nicht, deinen Beitrag zu schließen.
PeterDer Computer wird das tun, was du programmierst - nicht das, was du willst ;-)
-
ja werde daran denke aber glaub ich hab in den nächsten paar Minuten
noch Fragen. Deswegen lass ich den Beitrag offen.
mfg meccan
-
22.05.07 16:00 #9Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Hallo!
Ich bin noch C-Anfänger und habe ein Problem mit der Parameterübergabe von Feldern.
Meine Grund-Idee sieht so aus:
#include <stdio.h>
#include <conio.h>
char funktion()
{
char f[3];
f[0]='A';
f[1]='B';
f[2]='C';
return f;
}
void main()
{
int i=0;
char g[3];
g=funktion();
for(i=0;i<3;i++)
printf("%c",g[i]);
}
Was muss ich verändern damit das Feld g mit den Werten von Feld f gefüllt wird?
Danke
Mfg Leo
-
08.04.08 20:17 #11
prinzipiell ok würd ich sagen... hab im Moment keinen Compiler bei der Hand,
kann das also nicht ausführen und testen
ein array von char würdest du (glaub ich) folgendermaßen deklarieren:
also in diesem FallCode cpp:1
array<Typ>(Länge)
Code cpp:1
array<char>(3)
Außerdem kannst du die Laufvariable "i" auch erst in der Schleife deklarieren,
sowie die Länge als Länge des Arrays:
Code cpp:1
int i = 0; i < g.Length; ++i)
Was genau ist denn dein Problem?
Kompiliert das Ganze nicht? Oder bekommst du nur keine Ausgabe?Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Hallo!
Also wenn ich es so lasse dann kommen folgende Felermeldungen:
1) warning C4047: 'return' : 'char ' differs in levels of indirection from 'char [3]'
2) warning C4172: returning address of local variable or temporary
3) warning C4047: '=' : 'char [3]' differs in levels of indirection from 'char '
4) error C2106: '=' : left operand must be l-value
1) und 2) zeigen auf die Zeile mit "return f;" und die anderen zwei auf die Zeile mit "g=funktion();"
also bis jetzt habe ich es nur so gelernt ein Feld mit dem Datentyp char zu deklarieren:
char name[größe];
Muss ich nicht "irgendwas" mit dem strcpy machen?
Danke
Mfg Leo
-
08.04.08 22:40 #13
denke nicht o.O
Aber ein Char definiert ein (1) Zeichen!
Um mehrere Zeichen zu verwenden, musst du einen String, oder eben ein Array von Chars benutzen.
Dann kommt als Rückgabewert in deiner Methode eben anstelle eines normalen chars ein "array<char>"
Außerdem verwendest du in C++ Zeiger!Meine Blogs:
theIncredibleLeitman.blogspot.com // Tec
Gamesdev.de // Gamedevelop
Ein echter Programmierer hat nur natürliche 3 Feinde:- Sonnenlicht
- Frischluft
- und das unerträgliche Gebrüll der Vögel
Ownage
steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
(siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)
-
Sorry, habe vergessen zu sagen das ich C programmiere, C++ kommt erst...
Bis jetzt habe ich es so gelernt: "datentyp name[größe]" und "char f[5]" ist dann also ein Feld mit 5 gliedern und dem Datentyp char.
Wenn ich ein Feld wie von dir vorgeschlagen deklariere: array<char>(3)
wo ist denn hier der Name des Feldes zu bestimmen?
Was muss ich an meinem Programm noch verändern, damit ich das Feld über return einem anderen Feld zuweisen kann?
Danke
-
Zitat: Außerdem verwendest du in C++ Zeiger
Pointer sind doch schon in c vertreten
@puitl: please das nächste mal einen eigenen thread aufmachen
Ähnliche Themen
-
Char array
Von $$Money$$ im Forum JavaAntworten: 7Letzter Beitrag: 01.03.09, 11:54 -
array[char]=char?!
Von thomy800 im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 06.11.07, 18:09 -
Char Array nach char umwandeln
Von ProgFreak im Forum C/C++Antworten: 11Letzter Beitrag: 01.06.07, 02:00 -
char mit 2D-array
Von Mickeyman im Forum C/C++Antworten: 7Letzter Beitrag: 27.03.06, 11:10 -
Probleme mit char-Array
Von lindin im Forum C/C++Antworten: 3Letzter Beitrag: 13.09.04, 13:53





Zitieren

Login






