C Programm: Funktion um Speicher mit Nullen zu versehen (Grundlagen)

...komplette Frage anzeigen

3 Antworten

Was dein Professor meint, ist, dass ihr die Funktion "memset" in folgendem Beispiel durch eine selbstgeschriebene Funktion ersetzen sollt:

char *ptr;
ptr=malloc(n);
memset(ptr,0,n);

Der Befehl "malloc" "erzeugt" (das Wort "erzeugen" ist nicht ganz richtig) einen Speicherbereich der Länge n Bytes. Die Variable "ptr" ist ein Zeiger auf diesen Speicherbereich, das bedeutet, man kann sie wie ein Array verwenden. Anstatt:

char a[100];

könnte man auch:

char *a;
a=malloc(100);

schreiben. Das funktioniert auch mit anderen Datentypen außer "char", man muss dann aber beachten, dass man bei "malloc" die Anzahl an Bytes und nicht die Länge des Arrays angeben muss. Außerdem muss man noch ein paar andere Sachen beachten.

Das Array enthält von Anfang an zufällige Werte. Die Funktion "memset" würde dann alle Werte in diesem "array" zu Null machen.

Diese Funktion ("memset") sollt ihr durch eine eigene, selbstgeschriebene Funktion ersetzen.

biggoliath 24.01.2014, 22:36

Danke für die Antwort, gäbe es eine möglichkeit diese memset funktion mit schleifen oder sonstigen einfachen befehlen zu gestalten, da wir den befehl memset nicht in der vorlesung behandelt haben?

mfg

0
martin7812 26.01.2014, 07:45
@biggoliath

Genau das ist ja eure Hausaufgabe!

Im Endeffekt muss man a[0] auf 0 setzten, dann a[1], dann a[2], ..., und am Schluss a[n-1]. Eine for-Schleife eignet sich dafür besonders gut.

0
biggoliath 29.01.2014, 15:09
@martin7812

es handelt sich hierbei um eine aufgabe die in der klausur drankommen soll, jedoch hat niemand aus der stufe überhaupt eine ahnung wie man es realisieren kann, leider bleibt in der klausur keine zeit sich darüber gedanken zu machen.

könnten sie mir mal als beispiel die schleife programmieren?

vielen dank im voraus.

0

Hört sich so an als ob der selber nicht ganz weiß wovon er spricht, abgesehen von den wirklich miserablen rhetorischen Fähigkeiten und der Ausdrucksweise. "kriegt" usw.

Eventuell hilft dir das:

http://www.c-plusplus.de/forum/159231-full

biggoliath 23.01.2014, 22:20

Danke für die Antwort, also Sie können davon ausgehen dass dieser Herr wirklich sehr viel Ahnung von diesem Gebiet hat...und weiß wovon er spricht.

0
Alex1146 23.01.2014, 22:22
@biggoliath

Wenn Sie das so sagen. Ich bin nur froh, dass ich mir das nie antun musste, um etwas zu lernen.

Ich hoffe der Link hilft Ihnen auf verständlichere Art weiter. Viel Glück.

0
biggoliath 23.01.2014, 23:40
@Alex1146

es handelt sich um die programmiersprache c, nicht um c++. obwohl c eine untermenge ist....

was in dem link beschrieben wird ist schon viel zu komplex.

0
Alex1146 24.01.2014, 00:25
@biggoliath

Das bezieht sich auch auf C (zumindest teilweise / genügend für das was Sie suchen), steht sogar in der Überschrift.

Wenn Sie das vollständig lesen würden, oder wenigstens die Suchfunktion Ihres Browsers (STRG+F) für die Suche nach "Null" verwenden würden, würden Sie feststellen, dass die von Ihnen gesuchte(n) Funktion(en) und Möglichkeiten dort wohl erklärt werden.

Da sie geschrieben haben: "Habe auch keinen wirklich festen Anhaltspunkt, der mir bei der suche helfen könnte." Gab ich Ihnen "einen" Anhaltspunkt. Übrigens: 10 Sekunden Google Ihrerseits hätten ihnen (und mir) heute viel Zeit erspart.

1

Was möchtest Du wissen?