Grossen Speicherbereich auf 0 setzen?
-
Hallo Cianner

Ich habe eine 300.000 Byte Variable die ich mit (c) malloc angelegt habe und möchte diese mit einem einheitlichen Wert füllen. Momentan mache ich eine for() Schleife für jedes ihrer Elemente. Dies ist aber auch zeitintensiv, gibt es da eine schnellere Methode?
Danke.
-
wie wärs mit memset ?
Bsp:
unsigned char* bigThing = (char*)malloc(300000sizeof(char));
memset(bigThing, 0, sizeof(300000sizeof(char));//füllt bigThing mit lauter 0en
-
@Gill: In dem Code ist ein sizeof zu viel drin

(und außerdem garantiert der ANSI Standard, daß sizeof(char)==1 ist)Richtig sieht das so aus:
unsigned char* bigThing = (char*)malloc(300000); memset(bigThing, 0, 300000);//füllt bigThing mit lauter 0en
-
nimm statt malloc 'calloc', dann sparste das 'memset'. ob's schneller ist als memset musste ausprobieren...
-
@CStoll:
Ok, hast mich erwischt. Es schadet aber auch nicht. Und wenn man das ganze mit int macht, braucht man das sizeof wieder...