Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

26.11.2014, 21:50

Ok habs :D Danke aber allen, die mir geholfen haben

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

26.11.2014, 21:58

Müsste die maximale Arraygröße nicht sizeof(size_t) sein?
Also 4 oder 8? Unwahrscheinlich ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

13

26.11.2014, 22:04

Müsste die maximale Arraygröße nicht sizeof(size_t) sein?
Also 4 oder 8? Unwahrscheinlich ;)

Ja sorry, bisschen verpeilt heute. Ich meinte halt den größten Wert den size_t annehmen kann. Quasi sowas wie 2^( sizeof(size_t)*8 )-1.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

14

26.11.2014, 22:09

Warum willst du alles speichern, lese doch immer die Blöcke aus, die auch aktuell relevant sind.

15

27.11.2014, 00:34

C-Arrays sind nicht besonders handlich. Nimm lieber einen std::vector, damit hast du sehr viel mehr Freude. Kleines Beispiel:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <vector>
using std::vector;
using std::cout;

void MyFunction()
{
  vector<char> MyData;
  MyData.resize(3000000);
  File.read(MyData.data(), 3000000);
  cout << MyData[5000];
}

Und der Link zur Doku:
http://en.cppreference.com/w/cpp/container/vector

3 Millionen hört sich nach ner Menge an, aber wenn man es mit den gängigen Hauptspeichergrößen vergleicht, ist es eigentlich überhaupt nichts. Ich würde behaupten, es macht keinen großen Unterschied, ob dein Vector jetzt 100 Elemente hat, oder 3 Millionen (solange man ihn nicht Element für Element durchiteriert). Es sind wirklich nur ein paar MB, die werden weder den Hauptspeicher zumüllen, noch wird es lange dauern, sie zu laden.
Lieber dumm fragen, als dumm bleiben!

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

16

27.11.2014, 01:21

Können wir das ganze nicht einfach in seinem Kontext betrachten?
Er speichert in der .txt Daten in der Formatierung

Quellcode

1
x,y,z|x,y,z|x,y,z

Wieso nicht einfach als

Quellcode

1
2
3
4
BLOCK_COUNT
x y z
x y z
x y z

und dann mit einem std::ifstream immer die drei ints auslesen und daraus einen Block erstellen und speichern? Wieso alle chars speichern, wenn man das alles wesentlich einfacher in weniger Objekten speichern kann?
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

17

27.11.2014, 18:16

Zitat von »Roflo«

Die größe hängt bei Variablen auf dem Stack von der größe des Stacks ab, der meines Wissens bei um die 8MB liegt.

Leider nein, es ist 1MB.
Das kann man allerdings konfigurieren. Sowohl für die gesamte Anwendung beim Linker als auch für jeden einzelnen Thread, den du erstellst.

Deshalb sollte es auch keinen Compilerfehler geben, schließlich weiß der Compiler nicht welchen Wert du im Linker oder Thread eingestellt hast. Normalerweise sollte es einen Laufzeitfehler geben. Die statische Codeanalyse von Visual Studio warnt aber aus anderen technischen Gründen ab 64KB, soweit ich weiß.

18

27.11.2014, 18:36

Na gut, wenn das so ist ;)

Werbeanzeige