Übungsaufgabe C/C++ pointer ?malloc?

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Xin » Sa Aug 13, 2016 8:23 pm

Wissenslücke hat geschrieben:
Naja... in C heißt es erst Datentyp und dann Variablenname. Mich wundert eher, dass er numbers[] nicht schon bemängelt hat.
heißt das, dass der datentyp aus main nicht übernommen wird sondern nur der wert ? ist das was in den klammern steht (parameter) als initialisierung der lokalen variablen zu sehen ? das würde bei pointern ja eine rolle spieln.
Ich würde Dich bitten, die Grundlagen aus dem hiesigen Tutorial zu lesen. Wir brauchen mindestens eine Grundvorstellung, was hier abgeht. Und entweder erzähle ich Dir jetzt das gleiche, was ich im Tutorial geschrieben habe oder Du liest das Tutorial :)
Das Sinn des Tutorials ist, dass ich nicht immer den gleichen Kram in Forenbeiträge schreiben muss. :)
Wissenslücke hat geschrieben:
Liest Du das Tutorial auf proggen.org oder etwas anderes?
ich hab damit als ich angefangen habe zumindest begonnen ja. ich glaube bei dem zeiger sowie auch bei anderen konzepten fehlte mir wenn ich mich recht erinnere der konkrete anwendungsbereich bzw konkrete probleme in der softwareentwicklung, die mit zeigern gelöst werden. das ist aber auch schon ein wenig her also steinigt mich bitte net wenn ich hier was falsches sage. ich hab inzwischen ca 25 seiten auf in meinem browser die sich der informatik zuwenden. ich hab auch ein c++ buch durchgelesen, aber ohne regelmäßig selbst zu coden lernt man das einfach net.
Definitiv... Es bringt nichts, sich mit Theorie zu erschlagen und sie nicht praktisch auszuprobieren. So können Menschen nicht lernen.
Wissenslücke hat geschrieben:habs gerade versucht mit pointer als rückgabetyp und int vor den parametern, will trotzdem nicht laufen. das ist vielleicht ein wenig dreist aber könnte nicht einer von euch profis das kleine programm fix richtig schreiben mit malloc ( ich weiss man macht das normalerweise mit struct, aber darum gehts hier nicht ;D ) und hier posten anstatt dieses ewige Hin und Her?
Man lernt nicht programmieren, in dem man andere auffordert, die eigenen Aufgaben zu lösen.
Das ist Teil des Programmierenlernens: Sich damit zu beschäftigen, auch wenn es gerade keinen Spaß macht und man nicht sofort beim ersten Versuch Erfolg hat.
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.

Wissenslücke
Beiträge: 37
Registriert: Mo Feb 22, 2016 6:03 pm

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Wissenslücke » So Aug 14, 2016 3:43 pm

Code: Alles auswählen

Ich würde Dich bitten, die Grundlagen aus dem hiesigen Tutorial zu lesen. Wir brauchen mindestens eine Grundvorstellung, was hier abgeht. Und entweder erzähle ich Dir jetzt das gleiche, was ich im Tutorial geschrieben habe oder Du liest das Tutorial :)
Das Sinn des Tutorials ist, dass ich nicht immer den gleichen Kram in Forenbeiträge schreiben muss. :)
fair enough. dann wühl ich mich mal durchs tutorial. sprechen wir vom ganzen tutorial ? :D

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Xin » So Aug 14, 2016 4:33 pm

Wissenslücke hat geschrieben:

Code: Alles auswählen

Ich würde Dich bitten, die Grundlagen aus dem hiesigen Tutorial zu lesen. Wir brauchen mindestens eine Grundvorstellung, was hier abgeht. Und entweder erzähle ich Dir jetzt das gleiche, was ich im Tutorial geschrieben habe oder Du liest das Tutorial :)
Das Sinn des Tutorials ist, dass ich nicht immer den gleichen Kram in Forenbeiträge schreiben muss. :)
fair enough. dann wühl ich mich mal durchs tutorial. sprechen wir vom ganzen tutorial ? :D
Im Idealfall schon. Die Grundlagen sollten Dir jedenfalls bereits viele Fragen beantworten.

Bei den nachfolgenden Fragen würde ich Dich auch wieder ans Tutorial verweisen, wenn die Antworten da bereits stehen. :)
Stehen die Antworten da nicht - muss ich das Tutorial überarbeiten und hier antworten :)
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.

Wissenslücke
Beiträge: 37
Registriert: Mo Feb 22, 2016 6:03 pm

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Wissenslücke » Mi Aug 17, 2016 12:02 am

ok hat ein wenig gedauert. hier ist der korrekte code:

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>

int* boundary(int numbers[], int Length)
{

    int *newa;
    newa =(int*)malloc(sizeof(int)*2);
    if (newa)
    {
    *newa=numbers[0];
    newa[1]=numbers[Length-1];
    }


    return newa;
}


int main ()
{
int array[4]={1,2,3,4};
int size = sizeof(array)/sizeof(array[0]);

int* kkk= boundary(array,size);

printf("erstes element aus dem uebergebenen array:%d\nletztes element aus dem uebergebenen array:%d", *kkk, kkk[1]);


return 0;

}
das heißt mit einer ausnahme. bei diesem kleinen programm ist es denk ich zu vernachlässigen aber ich wusste nicht wo ich free() unterbringen soll.

gruß wl

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Xin » Mi Aug 17, 2016 7:13 am

Das sieht doch gut aus - insbesondere, wenn Du es noch sauber einrückst.

Einziges, was ich als falsch werten würde wäre, dass Du den mit malloc alloziierten Speicher nicht mit free() wieder freigibst.
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.

Wissenslücke
Beiträge: 37
Registriert: Mo Feb 22, 2016 6:03 pm

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Wissenslücke » Mi Aug 17, 2016 6:43 pm

ja aber wie bau ich free ein ohne das mein array vorzeitig überschrieben wird. ich hatte es mit free vor dem return von der adresse versucht, bekam aber dann ein garbage value. das einzige was mir einfällt sind pointer aber es scheint mir fast zu umständlich.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Xin » Do Aug 18, 2016 8:59 am

Wissenslücke hat geschrieben:ja aber wie bau ich free ein ohne das mein array vorzeitig überschrieben wird. ich hatte es mit free vor dem return von der adresse versucht, bekam aber dann ein garbage value.
Naja, erstaunlich... wenn Deine Funktion eine Autofabrik ist und Du mit malloc die Rohstoffe für Dein Auto ranholst, um aus diesen Dein Auto zu bauen, dann daraus ein Auto formst und vor der Auslieferung die Rohstoffe aus dem Auto wieder rausnimmst... dann wird kein Auto ausgeliefert? ;)
Wissenslücke hat geschrieben:das einzige was mir einfällt sind pointer aber es scheint mir fast zu umständlich.
Aha.

Nun würde mich zunächst interessieren, was Du ändern musst, um Pointer zu verwenden. Mündlich reicht, einfach in zwei, drei Sätzen hier drunter schreiben. Wenn ich weiß, was du denkst, weiß ich, was ich erklären muss. :)

Danach werde ich Dich vermutlich fragen, ob Du das Tutorial hier schon gelesen hast und werde Interesse bekunden, wo dieses Tutorial steht, von dem Du derzeit lernst.
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.

Wissenslücke
Beiträge: 37
Registriert: Mo Feb 22, 2016 6:03 pm

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Wissenslücke » Fr Aug 19, 2016 9:15 pm

das mit den pointer war nur ein erster gedanke da man free ja wohl aus main aufrufen muss. aber der zeiger ist in main nicht definiert also keine ahnung. ich gestehe wieder, ich hab mir das tutorial hier noch net ganz durchgelesen aber das bringt auch nichts, denn wenn ich das täte hätte ich danach das meiste auch schon wieder vergessen. ich hab mir aber auf deinen hinweis die kapitel zu dynamische speicherverwaltung und funktionen durchgelesen. aber ich nutze wie gesagt auch andere quellen wie zb http://openbook.rheinwerk-verlag.de/c_v ... ng_005.htm .

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Übungsaufgabe C/C++ pointer ?malloc?

Beitrag von Xin » So Aug 21, 2016 8:35 am

Wissenslücke hat geschrieben:das mit den pointer war nur ein erster gedanke da man free ja wohl aus main aufrufen muss.
Richtiger Gedanke :)
Wissenslücke hat geschrieben:aber der zeiger ist in main nicht definiert also keine ahnung.
Die Aussage widerspricht dem von Dir geposteten Code:

Code: Alles auswählen

int* kkk= boundary(array,size);
Was passiert hier?
Wissenslücke hat geschrieben:ich gestehe wieder, ich hab mir das tutorial hier noch net ganz durchgelesen aber das bringt auch nichts, denn wenn ich das täte hätte ich danach das meiste auch schon wieder vergessen. ich hab mir aber auf deinen hinweis die kapitel zu dynamische speicherverwaltung und funktionen durchgelesen.
Das reicht hier auch.
Wissenslücke hat geschrieben:aber ich nutze wie gesagt auch andere quellen wie zb http://openbook.rheinwerk-verlag.de/c_v ... ng_005.htm .
Auch da spricht auch nichts gegen. Die Umsetzung stimmt ja. Die Gedanken auch. Jetzt fehlt nur noch die Umsetzung von free. :)
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.

Antworten