Aligned Memory :D?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

In deinem Fall wird in der ersten Zeile der Wert für Alignment nach pagel geholt. Und wie das Alignment zu erfolgen hat, wird via sysconf() vom System abgefragt. In diesem Fall geht es um memory pages.

Normale PC-Linux-Systeme beispielsweise benutzen eine page size von 4096 Bytes.

8

Das heißt ein 4KiB alignment?

0
40
@JOSUE2000

Genau, das wird dort offenbar gefordert bzw. durch den Codeschnipsel sichergestellt. Und zwar auch KiB in IEC-Notation (bzw. das, was man von alther "nur" KB nannte, also 1024 Bytes per KiB/früherem KB).

Achtung: wenn Du auf dynamisch allokierten Speicherblöcken arbeitest, musst Du natürlich ggf. mehr Speicher anfordern, als Du später belegst. Du brauchst also bei z. B. einem vorangehenden malloc() erstmal Nutzdatenmenge plus zusätzlich Alignment - 1. Nur so kannst Du sicherstellen, dass der Buffer groß genug ist, dass unter Berücksichtigung des geforderten Alignments die Nutzdaten auch wirklich dort "passend" untergebracht werden können.

1

Casio FX-991ES Ergebnisse wieder aufrufen

Hallo, der Casio FX-991ES hat die wunderbare Funktion die letzten x Rechnungen wieder aufrufen zu können. Leider habe ich noch nicht rausgefunden, wie man Ergebnisse auf diesen Rechnungen weiterverwenden kann. Zwar kann man nochmals das "Gleich-Zeichen" betätigen, dann wird die Rechnung auch nochmals durchgeführt, und man kann das Ergebnis weiterbenutzen.

Jedoch funktioniert das nicht, wenn in dieser vorangegangen Rechnung die Funktion "Ans" benutzt wurde, also wiederrum ein Ergebnis der vorherigen Rechnung eingesetzt wurde.

Der Rechner setzt dann nämlich für "Ans" nämlich den neusten "Ans"-Wert ein. Hoffe das ist verständlich beschrieben.

Mal ein Beispiel: ich tippe ein 1+3 = 4 nächste Zeile Ansx2 = 8 (4x2) 3. Zeile 2+Ans = 10

Wenn ich jetzt das Ergebnis aus der 2. Zeilen wieder aufrufen möchte steht dort wieder Ansx2 =8, drücke ich jetzt auf das Gleich Zeichen rechnert er aber 2x10=20 (für Ans setzt er das Ergebnis der 3. Zeile ein).

Kennt jemand eine Möglichkeit das alte Ergebnis wieder in den Speicher zu bekommen?

...zur Frage

C++ Zeiger -Deklaration in einer Zeile?

Hallo liebe Community,
Ich habe folgenden Code gegeben und muss erst den Code beschreiben und dann den Code so umschreiben, dass jede Deklaration in einer Zeile steht. Jedoch habe ich das Konzept der Zeiger nicht gabz verstanden und gerade die Zeile mit z[1] verwirrt mich sehr. Was genau wird da gemacht und wieso sind die geschweiften Klammern leer. Wofür steht dann das z[0]=++*x
Könnt ihr mir weiterhelfen?

...zur Frage

C++: Wieso bekommt man hier 1 bei Little Endian und 0 bei Big Endian als Rückgabewert?

Hallo,

weshalb bekommt man hier

int check_for_endianness() {
  unsigned int x = 1;
  char *c = (char*) &x;
  return (int)*c;
}

die Zahl 1 bei Little Endian und bei Big Endian die Zahl 0 als Rückgabewert?

uint32_t x = 1;
char c = (char) &x;

Der entscheidende Cast ist:

(int) c

richtig?

...zur Frage

C++ , wo werden Variablen gespeichert?

C++ , wo werden Variablen gespeichert und wo werden Pointer gespeichert ? und wieso ?**

...zur Frage

Ist folgende Vorschrift ein Algorithmus?

1. Nehmen Sie eine beliebige Zahl x.
2. Zählen Sie die Sekunden der aktuellen Tageszeit seit 00:00:00 h hinzu.
3. Addieren Sie 7 hinzu und multiplizieren Sie mit 5.
Manche meinten, dass es ein Algorithmus sei und manche behaupteten, dass es keiner sei. Die, die meinten es sei keiner, argumentierten damit, dass es nicht determiniert sei, da x beliebig gewählt werden könne und somit die Determiniertheit nicht gegeben sei oder auch, dass der zweite Schritt nicht eindeutig sei.
Nun frage ich mich stimmt es was sie sagen? Ich persönlich glaube nämlich es ist einer.

...zur Frage

Warum sind MergeSort und BubbleSort stabil?

Hey dank Wikipedia weiß ich das Merge und BubbleSort stabil sind. Aber eine Erklärung warum das so ist wäre super

...zur Frage

Was möchtest Du wissen?