Alignment
-
Hallo,
ich habe ein kleines mathematisches Problem in einem meinem Programme.ich weiß im Voraus, dass Speicher, welchen ich "allokiere" n-Aligniert ist, d.h., dass die Zahl, die die virtuelle Speicherposition angibt, ohne Rest durch n Teilbar ist.
Nun möchte ich in diesen n-Alignierten Speicher ein Objekt reintun, welches m-Aligniert werden muss. m steht hierbei auch wieder für eine ganze Zahl, und die Startposition des Speichers, in dem das Objekt liegt, muss wieder ohne Rest durch m Teilbar sein.Wie viel Speicher muss ich nun zusätzlich "allokieren", um zu garantieren, dass mein m-aligniertes objekt in einen n-Alignierten Speicherbereich passt?
-
Wo ist denn da das mathematische Problem?
int extra_mem = m > n ? (m - n) : (m - (n%m));