memcpy dirty?
-
Ich suche eine Möglichkeit ein double Array möglichst performant auf 0.0 zu setzen. Wäre dieser Code dirty?
double A[1000]; ... // viele Zuweisungen auf A ... double *ddummy; memcpy(A,ddummy,1000*sizeof(double)); ...
-
Wäre dieser Code dirty?
Ja, sehr sogar. Das wird nämlich in der Regel nicht funktionieren. Das erzeugt dir eine Mischung aus Abstürzen und Werten die nicht 0.0 sind. hast du den Code nicht selber ausprobiert?
Wie wäre es mit memset? Ist zwar nicht ganz sauber, da das Fließkommaformat der 0.0 nicht fest vorgegeben ist, funktioniert aber auf 99.9% aller Systeme.
-
blub01 schrieb:
Ich suche eine Möglichkeit ein double Array möglichst performant auf 0.0 zu setzen. Wäre dieser Code dirty?
double A[1000]; ... // viele Zuweisungen auf A ... double *ddummy; memcpy(A,ddummy,1000*sizeof(double)); ...Wenn das zurücksetzen oft im Programm gebraucht wird, kannst Du einen entsprechenden Bereich vorhalten:
double A[1000]; double ddummy[1000]; for(size_t i = 0; i < 1000; ++i) ddummy[i] = 0.0; ... // viele Zuweisungen auf A ... //double *ddummy; memcpy(A,ddummy,1000*sizeof(double)); ...
-
Am einfachsten ist noch
std::uninitialized_fill.
-
double A[1000] = {};Ich schreibe aber eigentlich gerne:
double A[1000] = {0};um es nochmal deutlich zu machen.
Edit: Sry, soll ja nicht bei der Definition sein. Gerade gecheckt
