RAM - Speicherproblem

Gast #238190
@Jörg Wunsch
so habs so gemacht wie du gemeint hast..  und wer hätts gedacht es
geht;)

aber so ganz verstanden hab ich noch net warum meine version net lief.
ich hab doch praktisch nur ein pointer der auf ne struktur innerhalb
des puffers zeigt, übergeben.

Und des volatile hab ich seither noch net verwendet weil ich net weiss
was des bewirkt

vielen dank des hat mir viel zeit erspart
Moderator Persönliche Seite #238191
(Bitte keinen neuen Thread für altes Zeug.  Das macht es Anderen, die
den Thread nachträglich verfolgen, praktisch unmöglich, die Auflösung
zu erkennen.  Außerdem erschwert es das Antworten.)

> ich hab doch praktisch nur ein pointer der auf ne struktur innerhalb
> des puffers zeigt, übergeben.

Nein, du hast ein einzelnes Strukturelement kopiert, also nur den
ersten Eintrag deiner fdisk-Tabelle extrahiert.  Das ist erstens
zusätzlicher Aufwand, schon von daher vermeidet man sowas eher,
zweitens kannst du den Pointer nicht anschließend auf den nächsten
Eintrag der Tabelle weiterschalten.  In ganz altem C (pre-C89, das
sogenannte ,,K&R-C'') konnte man Strukturen nicht direkt (ohne
memcpy()) kopieren, schon daher ist das ein Feature, was
C-Programmierer auch heute nur eher spärlich benutzen.

Deine Variante hätte korrekt ungefähr so ausgesehen:
1
void readPe1(unsigned char *buffer,struct tPartitionEntry **pe){
2
  MMC_read_sector(0,buffer);
3
  *pe = (struct tPartitionEntry *)&buffer[PART_ENTRY_ONE];
4
}
5

6

7
int main(void) {
8
  unsigned char buffer[512];
9
  struct tPartitionEntry *pe;
10

11
  readPe1(buffer,&pe);
12
  return 0;
13
}

Du solltest dir das Kapitel über Zeiger und Felder in deinem
C-Lehrbuch nochmal durchlesen...
Gast #238192
Sorry wegen dem Thread..
so sachen mit pointern haben wir zwar in der schule behandelt... aber
in
visual c++ ham wir uns nie so intensiev damit befasst, was letztlich
mit den variablen passiert und wo sie am ende stehen... da spielt die
ram-größe au net so ne große rolle.. man hat ja 512MB davon..
(zumindest mit dieser einstellung wurde es und beigebracht)

also vielen dank

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.