e.full
-
Gesamte Inhalte
53 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von e.full
-
-
-
-
ja ich verstehe das schon, ich danke auch klotzkopp
also zeiger:
zeiger, d.h. es ist eine variable, bieten doch jemanden, jetzt bezüglich in Programmiersprachen wie C, die möglichkeit, auf den speicher zuzugreifen.
also bei 09:
strcpy (str 4, str2);
vorher hatten wir gesagt das str4 null ist
und zu str2, dass es ein array auf dem stack ist, und die größe 3 hat
da sollte doch eigentlich str2 in str4 kopiert werden
?? oder nicht
-
-
-
-
-
es tut mir sehr leid bin bisschen verwirrt, deshalb komme ich bisschen durcheinander.
07:
stimmt in zeile 2 wurde str2 mit der länge 3 gesagt, aus diesem grund hat str3 jetzt auch eine länge von 3
aus diesem grund ist sie gültig,
bei 08:
vorher hatten wir gesagt das str3[0] länge 11,
hier bin ich mir ehrlich zu sein nicht so sicher
und bei 09: auch net so sehr
-
-
-
-
-
07:
also enthält einen terminierten string
die quelle ist str2,
der quellzeiger zeigt auf den speicher,
in das Ziel darf auch geschrieben werden
und deshalb denke ich das das gültig ist
bei 08:
der Quellzeiger zeigt auf Speicher , aus dem gelesen werden darf,
enthält einen terminierten string
quelle ist test3, wird mit kopiert
aber kein gültiger zugriff
bei 09:
der quellzeiger zeigt auf den speicher
in das ziel darf geschrieben werden
enthält einen terminierten string.
deshalbt gültig
-
-
-
-
ja also ich muss ja zunächst schreiben wo die zeiger hin zeigen.
bei strcpy
weiss ich jetzt noch nicht genau wo die zeiger hin zeigen, ich weiss das
die funktion strcpy eine zeichenkette kopiert.
jetzt in den zeilen von 06-09
06 es wird eine Zeichenkette von str1 in test1 kopiert
07 str1 kopiert ihre zeichenkette in str2
08 str3 kopiert ihr Nullelement in test3
09 str4 kopiert ihre zeichenkette in str 2
ich weiss jetzt nicht wie ich das anders beschreiben soll
-
-
-
also ich habe da mal was versucht, aber weiss net ob es richtig ist:
also ab zeile 3:
03 str3 ist ein Array und ist gleichzeitig Element von 0 und 1
04 str1 reserviert einen Speicherplatz
05 str3 ist ein Array und gleichzeitig str1
06 str1 kopiert eine Zeichenkette zu test1
07 str1 und str2 kopieren zeichenketten
08 str3 ist ein Nullelement
09 str4 kopiert eine zeichenkezze zu str 2
-
-
hmm ok danke, habe noch eine frage:
ich habe ein ausschnitt aus einem c-programm:
01 char *str1, *str4 = 0;
02 char str2 [] = "t2";
03 char *str3 [2] = {" Element_0" , "Element_1" };
04 str1 = malloc (5);
05 str3 [0] = str1;
06 strcpy ( str1, "test1");
07 strcpy (str1, str2);
08 strcpy (str3[0], "test3");
09 strcpy (str4, str2);
also ich soll jetzt die programmzeilen nennen, in denen auf ungültige speicher zugegriffen wird, und genau beschreiben, weshalb die zugriffe unzulässig sind.
nur ich weiss jetzt nicht wie ich das merke, gibt es da bestimmte regel oder so würde mich auf eine antwort freuen, da ich erst neu anfange zu programmieren und nicht weiss wie das so funktioniert.
-
-
Zeiger
in C und C++
Geschrieben
und da str4= 0 ist, ist das dann verboten