Array Schreibweise mit Pointerschreibweise ersetzen



  • Ein Array legt bei seiner Definition bereits einen Datenbereich an, den man (über den Arraynamen per Zeiger- oder per Array/subscript-Schreibweise) ansprechen kann.
    Ein Zeiger legt bei seiner Definition nur Speicher für sich selbst an aber niemals einen effektiven Datenbereich wie das Array. Ein Zeiger muss für den Gebrauch immer explizit auf einen (zuvor anderweitig) definierten Datenbereich gesetzt werden und darf dann auch nur in diesem definierten Datenbereich operieren; greift er über die (zuvor anderweitig) definierten Grenzen zu, ist das UB und du erhältst im besten Fall einen Laufzeitfehler.
    Die Verwendung der Array/subscript-Schreibweise mit Zeigern bedeutet nicht, dass der Zeiger zu einem Array mutiert.

    {
    char a[6] = "01234";
    char *p;
    
    putchar(a[1]); /* OK */
    putchar(p[1]); /* UB, weil der Zeiger nicht auf einen definitierten Speicher zeigt */
    
    p = a;
    putchar(p[1]); /* OK */
    
    putchar(a[6]); /* UB, es wird auf undefinierten Speicherbereich zugegriffen (außerhalb der Arraygrenzen) */
    putchar(p[6]); /* UB, es wird auf undefinierten Speicherbereich zugegriffen (außerhalb der Arraygrenzen) */
    }
    


  • dachschaden schrieb:

    Die Frage hast du doch schonmal gefragt.

    Und da habe ich dir bereits eine Antwort gegeben, die du nicht mal mit dem Arsch angeschaut hast:

    dachschaden schrieb:

    Im Übrigen verstehe ich überhaupt nicht, was du willst. Arrays durch Pointer ersetzen? Funktionen verwenden am Ende eh Adressen, und die Länge musst du so oder so mit übergeben.

    Joe1903 schrieb:

    Entschuldige bitte die Frage aber könntest du den obigen Code (also meinen ersten Post) komplett mit Pointern schreiben?Wenn es nicht zu viel verlangt ist.Ich lerne am besten wenn ich etwas sehe.

    Lern was anderes als Programmierung. Wenn du so komplett unfähig bist, aus deinem ersten Thread was zu lernen, und du auch keine Suchmaschinen bedienen kannst, dann bist du hier definitiv falsch.

    Dann schreib nicht.



  • Joe1903 schrieb:

    Dann schreib nicht.

    Und wenn du mit Kritik nicht klarkommst, dann hast du noch viel weniger was zu suchen in der Programmierung.



  • dachschaden schrieb:

    Joe1903 schrieb:

    Dann schreib nicht.

    Und wenn du mit Kritik nicht klarkommst, dann hast du noch viel weniger was zu suchen in der Programmierung.

    Pass mal auf.Ich bin kein Programmierer.Ich versuche nur einer alleinerziehenden Mutter zu helfen,die ihren Job nicht verlieren will.Sie hat Aufgaben in C/C++ bekommen hat und diese abgeben muss.Also nicht persönlich nehmen.



  • Joe1903 schrieb:

    Entschuldige bitte die Frage aber könntest du den obigen Code (also meinen ersten Post) komplett mit Pointern schreiben?Wenn es nicht zu viel verlangt ist.Ich lerne am besten wenn ich etwas sehe.

    Könnte ich, mache ich aber nicht, da ich keine Hausaufgaben mehr mache.

    Aber es sollte klar sein, wo die Zeilen hingehören.

    Definition an den Anfang,
    Zuweisung erst, wenn die Variablen Deklariert sind.
    Eine for(j= Schleife, das i++; sowie das = c; hast du nur je einmal.



  • DirkB schrieb:

    Joe1903 schrieb:

    Entschuldige bitte die Frage aber könntest du den obigen Code (also meinen ersten Post) komplett mit Pointern schreiben?Wenn es nicht zu viel verlangt ist.Ich lerne am besten wenn ich etwas sehe.

    Könnte ich, mache ich aber nicht, da ich keine Hausaufgaben mehr mache.

    Aber es sollte klar sein, wo die Zeilen hingehören.

    Definition an den Anfang,
    Zuweisung erst, wenn die Variablen Deklariert sind.
    Eine for(j= Schleife, das i++; sowie das = c; hast du nur je einmal.

    Besten Dank.Aber das sind keine Hausaufgaben.Wie oben erwähnt versuche ich nur jemand zu helfen.Aber wem soll ich das beweisen.Ich hab selber keine Ahnung sonst würde eh sowieso nicht hier rumschreiben.

    Sie hat auch in einem anderen Bereich gegen Bezahlung um Hilfe gebeten.



  • Joe1903 schrieb:

    Pass mal auf.Ich bin kein Programmierer.Ich versuche nur einer alleinerziehenden Mutter zu helfen,die ihren Job nicht verlieren will.Sie hat Aufgaben in C/C++ bekommen hat und diese abgeben muss.Also nicht persönlich nehmen.

    Und?

    Wenn sie einer Stelle nachgeht, in der sie nichts damit zu tun haben sollte, und sie das trotzdem tun soll - keine Ahnung, geht man dann vor das Arbeitsgericht?
    Wenn sie einer Stelle nachgeht, in der genau das verlangt werden kann, und sie keinen Plan davon hat, dann sollte sie dieser Stelle auch nicht nachgehen. Simple as that. Es wurde bereits genug Schaden von Leuten angerichtet, die keinen Plan davon haben, was sie tun.

    Außerdem: warum fragst du das dann überhaupt, und nicht sie selbst? Den einzigen Grund dafür, den ich hier gelten lassen könnte, wäre kein Internet-Anschluss - und dann solltest du keine überflüssigen Fragen in einem Forum stellen, sondern eher ein paar C-Tutorials runterladen oder ihr ein Buch schenken.
    Und wenn das nicht der Fall ist, dann hat sie in der Programmierung sowieso nix verloren.



  • Joe1903 schrieb:

    Sie hat Aufgaben in C/C++ bekommen hat und diese abgeben muss.

    Mit ein oder zwei Fragen stellt der Aufgabensteller eh fest, ob das verstanden wurde.
    Es bringt daher gar nichts, das machen zu lassen.



  • Joe1903 schrieb:

    DirkB schrieb:

    Joe1903 schrieb:

    Entschuldige bitte die Frage aber könntest du den obigen Code (also meinen ersten Post) komplett mit Pointern schreiben?Wenn es nicht zu viel verlangt ist.Ich lerne am besten wenn ich etwas sehe.

    Könnte ich, mache ich aber nicht, da ich keine Hausaufgaben mehr mache.

    Aber es sollte klar sein, wo die Zeilen hingehören.

    Definition an den Anfang,
    Zuweisung erst, wenn die Variablen Deklariert sind.
    Eine for(j= Schleife, das i++; sowie das = c; hast du nur je einmal.

    Besten Dank.Aber das sind keine Hausaufgaben.Wie oben erwähnt versuche ich nur jemand zu helfen.Aber wem soll ich das beweisen.Ich hab selber keine Ahnung sonst würde eh sowieso nicht hier rumschreiben.

    Sie hat auch in einem anderen Bereich gegen Bezahlung um Hilfe gebeten.

    der op ist doch ein fake. bestimmt war er zu faul zum lernen und jetzt sieht er seine felle wegschwimmen.



  • swapper schrieb:

    Joe1903 schrieb:

    DirkB schrieb:

    Joe1903 schrieb:

    Entschuldige bitte die Frage aber könntest du den obigen Code (also meinen ersten Post) komplett mit Pointern schreiben?Wenn es nicht zu viel verlangt ist.Ich lerne am besten wenn ich etwas sehe.

    Könnte ich, mache ich aber nicht, da ich keine Hausaufgaben mehr mache.

    Aber es sollte klar sein, wo die Zeilen hingehören.

    Definition an den Anfang,
    Zuweisung erst, wenn die Variablen Deklariert sind.
    Eine for(j= Schleife, das i++; sowie das = c; hast du nur je einmal.

    Besten Dank.Aber das sind keine Hausaufgaben.Wie oben erwähnt versuche ich nur jemand zu helfen.Aber wem soll ich das beweisen.Ich hab selber keine Ahnung sonst würde eh sowieso nicht hier rumschreiben.

    Sie hat auch in einem anderen Bereich gegen Bezahlung um Hilfe gebeten.

    der op ist doch ein fake. bestimmt war er zu faul zum lernen und jetzt sieht er seine felle wegschwimmen.

    Was heisst das?Das hab ich nicht verstanden.



  • DirkB schrieb:

    Joe1903 schrieb:

    Sie hat Aufgaben in C/C++ bekommen hat und diese abgeben muss.

    Mit ein oder zwei Fragen stellt der Aufgabensteller eh fest, ob das verstanden wurde.
    Es bringt daher gar nichts, das machen zu lassen.

    Es geht ihr doch um etwas Zeit zu gewinnen.Ich versteh eure Haltung wirklich nicht.Ihr müsst ja nicht helfen,keine Frage,aber eure Ratschläge sind auch nicht wirklich hilfreich.Sagt einfach nein anstatt warum und wieso.
    Etwas mehr Mitgefühl ist nicht zuviel verlangt.Wir sind Menschen keine Rechner.Und wenn eine Mutter durch meine Hilfe etwas Zeit gewinnen kann um etwas passenderes zu finden,dann mach ich das.Aber das ist natürlich subjektiv.



  • Mitleidstour ...

    Du hast bereits gesagt bekommen, du bekommst hier keine Hausaufgaben oder dergleichen geliefert. Es steht dir frei, es woanders zu versuchen.

    Joe1903 schrieb:

    Sagt einfach nein anstatt warum und wieso.

    Dadurch weißt du am Ende aber immer noch nicht, warum dir Leute nicht helfen wollen. Stattdessen denkst du dir dann einfach "Boah, was für herzlose Arschlöcher das doch alle sind!" - dadurch lernst du nix. Ja, du. Nicht die Mutter, sondern du! Du lernst durch die Geschichte nämlich auch was.



  • dachschaden schrieb:

    Mitleidstour ...

    Du hast bereits gesagt bekommen, du bekommst hier keine Hausaufgaben oder dergleichen geliefert. Es steht dir frei, es woanders zu versuchen.

    Joe1903 schrieb:

    Sagt einfach nein anstatt warum und wieso.

    Dadurch weißt du am Ende aber immer noch nicht, warum dir Leute nicht helfen wollen. Stattdessen denkst du dir dann einfach "Boah, was für herzlose Arschlöcher das doch alle sind!" - dadurch lernst du nix. Ja, du. Nicht die Mutter, sondern du! Du lernst durch die Geschichte nämlich auch was.

    Mitleidstour??Ich sag nichts mehr.Bitte kläre mich auf..Was konnte ich hier lernen.Ich höre gerne zu.



  • Du hast gelernt, dass Programmierer keine Hausaufgaben für andere Leute machen.
    Du hast gelernt, dass Programmierer sehr wohl erkennen, wenn du die gleiche Frage schon mal gestellt hast.
    Du hast gelernt, dass Programmierer keinen Respekt für Leute haben, die nicht bereit sind, sich die Materie selbst beizubringen.

    Das wird dir in der Zukunft ein bisschen Zeit sparen, wenn du wieder jemandem helfen willst in der Programmierung. Ein Buch, ein Tutorial, was auch immer wird wesentlich effektiver sein als Foren zu frequentieren.



  • Joe1903 schrieb:

    Was heisst das?Das hab ich nicht verstanden.

    du hast nicht gelernt und willst jetzt andere überlisten deine hausaufgaben zu machen. die finden das aber gar nicht lustig. was irgendwie auch verständlich ist.



  • dachschaden schrieb:

    Du hast gelernt, dass Programmierer keine Hausaufgaben für andere Leute machen.
    Du hast gelernt, dass Programmierer sehr wohl erkennen, wenn du die gleiche Frage schon mal gestellt hast.
    Du hast gelernt, dass Programmierer keinen Respekt für Leute haben, die nicht bereit sind, sich die Materie selbst beizubringen.

    Das wird dir in der Zukunft ein bisschen Zeit sparen, wenn du wieder jemandem helfen willst in der Programmierung. Ein Buch, ein Tutorial, was auch immer wird wesentlich effektiver sein als Foren zu frequentieren.

    Du hast mich durchschaut 😉


Anmelden zum Antworten