Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Speicherbereich nullen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.05.2003, 13:32 Uhr
~christian
Gast


Hallo!

Gibt es eigentlich eine Standard C/C++ Funktion, mit der man einen Speicherbereich "nullen" kann? Vergleichbar mit ZeroMemory(..) aus der WinAPI.

DeadB... hat das ja auch mit zwei Schleifen im magischen Quadrat Rätsel gemacht.

Also in der Art:


C++:

int r[50];
Funktionsname(r, 50*sizeof(int));




Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.05.2003, 13:45 Uhr
~Heiko
Gast


Ich glaub das müsste mit memset gehen

Gruss Heiko
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.05.2003, 14:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ja memset:

C++:
int r[50];
memset(r,0,sizeof(r));


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.05.2003, 14:30 Uhr
Christian
C/C++ Master
(Operator)


fein.

so einfach
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.05.2003, 14:33 Uhr
~Heiko
Gast


ich glaub du musst aber aufpassen wenn du ein mehrdimensionles Array hast.
Wenn du das statisch angelegt hast weiss ich nicht ob der das hintereinander in den Speicher legt. Wenn du den Speicher erst zur laufzeit allokierst, dann kann dir das bei einem Mehrdimensionalen array auf jeden fall passieren das das nicht hintereinander im speicher liegt und du musst den Kremple wieder einzeln setzen (man spart dann mit memset legidlich eine Schleife)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.05.2003, 14:22 Uhr
Christian
C/C++ Master
(Operator)


Hi!

Nicht echt, oder?
Wenn ich ein:


C++:

int feld[10][10];




dann kann es wirklich passieren, dass das nicht hintereinander abgelegt wird?

Ich habe mal in meinem Gerharsd Wilms C++ Grundlagen Buch nachgelesen. Dort wird aber schon geschriben, dass das Array immer sequentiell direkt hintereinander im Speicher abgelegt wird.

Weiß sonst noch jemand was dazu?

Grüße
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.05.2003, 14:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich habe ja gesagt das ich das bei statischen arrays nicht weiss kann schon sein das der das hintereinander in den speicher packt (wobei ich halt nicht sicher bin ob der das immer macht. (Kann ja passieren das gar nicht soviel speicher am stück vorhanden ist. Keine ahnung was der dann macht.
Aber ich würde einfach mal davon ausgehen das der das hintereinander packt

Wenn du allerdings sowas machst

C++:
int **feld;
feld = new int*[10];
for(int i=0;i<10;i++) feld[i]= new int[10];
...



dann bin ich mir sicher das man nicht gerantieren kann, dass der das hintereinander in den Speicher packt

Gruss Heiko
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 10.05.2003 um 14:42 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.05.2003, 14:52 Uhr
virtual
Sexiest Bit alive
(Operator)


Hi,

ja bei statischen Variablen liegt das intereinander im Speicher.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: