Array dynamischer Größe

Das Array dynamischer Größe hat insofern eine dynamische Größe als das beim Überschreiten der aktuell verfügbaren, bereits allozierten Kapazität (c++: capacity) der Inhalt aus dem alten Array in ein neues größeres Array kopiert wird und das alte Array schlussendlich verworfen wird.

Ein Beispiel wäre der Typ std::vector<>:

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> myvector;

    int cap ;
    int i_rh{};
    
    for (int i=0; i<100; i++)
    {
        std::cout << "neue Elemente verfuegbar: " << myvector.capacity() - myvector.size() << "\n";

        cap = myvector.capacity();
        if (!(cap - myvector.size()))
        {
            myvector.push_back(i);
            std::cout << "Für Element nummer " << i + 1 << " musste capacity auf " << myvector.capacity() << " (2 hoch " << i_rh++ << ") erhoeht werden, denn vergeben " << i << "/" << cap << " Elemente\n";
            continue;
        }
        myvector.push_back(i);



    }


    std::cout << "size: " << (int) myvector.size() << '\n';
    std::cout << "capacity: " << (int) myvector.capacity() << '\n';
    std::cout << "es wurde insgesamt " << i_rh << " Mal der Speicher für myvector erhöht\n";
    
    }

Der Code gibt auf meinem Gerät

neue Elemente verfuegbar: 0
Für Element nummer 1 musste capacity auf 1 (2 hoch 0) erhoeht werden, denn vergeben 0/0 Elemente
neue Elemente verfuegbar: 0
Für Element nummer 2 musste capacity auf 2 (2 hoch 1) erhoeht werden, denn vergeben 1/1 Elemente
neue Elemente verfuegbar: 0
Für Element nummer 3 musste capacity auf 4 (2 hoch 2) erhoeht werden, denn vergeben 2/2 Elemente
neue Elemente verfuegbar: 1
neue Elemente verfuegbar: 0
Für Element nummer 5 musste capacity auf 8 (2 hoch 3) erhoeht werden, denn vergeben 4/4 Elemente
neue Elemente verfuegbar: 3
neue Elemente verfuegbar: 2
neue Elemente verfuegbar: 1
neue Elemente verfuegbar: 0
Für Element nummer 9 musste capacity auf 16 (2 hoch 4) erhoeht werden, denn vergeben 8/8 Elemente
neue Elemente verfuegbar: 7
neue Elemente verfuegbar: 6
neue Elemente verfuegbar: 5
neue Elemente verfuegbar: 4
neue Elemente verfuegbar: 3
neue Elemente verfuegbar: 2
neue Elemente verfuegbar: 1
neue Elemente verfuegbar: 0
Für Element nummer 17 musste capacity auf 32 (2 hoch 5) erhoeht werden, denn vergeben 16/16 Elemente
neue Elemente verfuegbar: 15
neue Elemente verfuegbar: 14
neue Elemente verfuegbar: 13
neue Elemente verfuegbar: 12
neue Elemente verfuegbar: 11
neue Elemente verfuegbar: 10
neue Elemente verfuegbar: 9
neue Elemente verfuegbar: 8
neue Elemente verfuegbar: 7
neue Elemente verfuegbar: 6
neue Elemente verfuegbar: 5
neue Elemente verfuegbar: 4
neue Elemente verfuegbar: 3
neue Elemente verfuegbar: 2
neue Elemente verfuegbar: 1
neue Elemente verfuegbar: 0
Für Element nummer 33 musste capacity auf 64 (2 hoch 6) erhoeht werden, denn vergeben 32/32 Elemente
neue Elemente verfuegbar: 31
neue Elemente verfuegbar: 30
neue Elemente verfuegbar: 29
neue Elemente verfuegbar: 28
neue Elemente verfuegbar: 27
neue Elemente verfuegbar: 26
neue Elemente verfuegbar: 25
neue Elemente verfuegbar: 24
neue Elemente verfuegbar: 23
neue Elemente verfuegbar: 22
neue Elemente verfuegbar: 21
neue Elemente verfuegbar: 20
neue Elemente verfuegbar: 19
neue Elemente verfuegbar: 18
neue Elemente verfuegbar: 17
neue Elemente verfuegbar: 16
neue Elemente verfuegbar: 15
neue Elemente verfuegbar: 14
neue Elemente verfuegbar: 13
neue Elemente verfuegbar: 12
neue Elemente verfuegbar: 11
neue Elemente verfuegbar: 10
neue Elemente verfuegbar: 9
neue Elemente verfuegbar: 8
neue Elemente verfuegbar: 7
neue Elemente verfuegbar: 6
neue Elemente verfuegbar: 5
neue Elemente verfuegbar: 4
neue Elemente verfuegbar: 3
neue Elemente verfuegbar: 2
neue Elemente verfuegbar: 1
neue Elemente verfuegbar: 0
Für Element nummer 65 musste capacity auf 128 (2 hoch 7) erhoeht werden, denn vergeben 64/64 Elemente
neue Elemente verfuegbar: 63
neue Elemente verfuegbar: 62
neue Elemente verfuegbar: 61
neue Elemente verfuegbar: 60
neue Elemente verfuegbar: 59
neue Elemente verfuegbar: 58
neue Elemente verfuegbar: 57
neue Elemente verfuegbar: 56
neue Elemente verfuegbar: 55
neue Elemente verfuegbar: 54
neue Elemente verfuegbar: 53
neue Elemente verfuegbar: 52
neue Elemente verfuegbar: 51
neue Elemente verfuegbar: 50
neue Elemente verfuegbar: 49
neue Elemente verfuegbar: 48
neue Elemente verfuegbar: 47
neue Elemente verfuegbar: 46
neue Elemente verfuegbar: 45
neue Elemente verfuegbar: 44
neue Elemente verfuegbar: 43
neue Elemente verfuegbar: 42
neue Elemente verfuegbar: 41
neue Elemente verfuegbar: 40
neue Elemente verfuegbar: 39
neue Elemente verfuegbar: 38
neue Elemente verfuegbar: 37
neue Elemente verfuegbar: 36
neue Elemente verfuegbar: 35
neue Elemente verfuegbar: 34
neue Elemente verfuegbar: 33
neue Elemente verfuegbar: 32
neue Elemente verfuegbar: 31
neue Elemente verfuegbar: 30
neue Elemente verfuegbar: 29
size: 100
capacity: 128
es wurde insgesamt 8 Mal der Speicher für myvector erhöht

aus.

Ersichtlich wird also, dass std::vector

myvector.capacity()

in 2-er-Potenzen erhöht, und zwar immer dann, wenn die aktuell noch verfügbare Anzahl an Elementen im vector 0 ist.

myvector.capacity()

gibt hierbei immer die Anzahl der Elemente an, die aktuell maximal in den allozierten Speicherbereich (ergo dem Vektor) geschrieben werden können, ohne dass Vector ein nächstgrößeres Array mit i + 1 der Größe repräsentiert als Summe einer Reihe





im Speicher reservieren muss und dann die Daten ins neue Array kopiert.

Dadurch wird wieder Platz für



neue Elemente im Vektor.

Dynamisch alloziertes Array

Ein dynamisch alloziertes Array ist ein Array, dessen Größe zur Laufzeit festgelegt wird. Da seine Größe zur Laufzeit bestimmt wird, kann es flexibler sein als ein Array mit fester Größe (das im Stack-Speicher alloziert wird).

Ein Beispiel:

int* dynArray;
int size = 10; // kann zur Laufzeit festgelegt werden
dynArray = new int[size];
//... Arbeit mit dynArray ...
delete[] dynArray;
...zur Antwort

Schau mal ob du die Skalierung und Anordunung "Größe von Text, ..." erhöhen kannst.

Sonst liegt das liegt wahrscheinlich daran dass was du für eine Auflösung auf dem Rechner eingestellt hast. Ich denke mal WQDH und dann ist schon alles recht viel kleiner weil ja sich der gleiche inhalt auf mehr pixel verteilen kann und windows macht dann den ganzen desktop "größer". Wenn du wieder auf 1920x1080 stellst sollte die Sache wieder größer werden.

...zur Antwort

Naja dein Handy ist ein weiterer Faktor neben dem Passwort, das ist erst mal gut.

SMS-Probleme sind von data2309 bereits abgedeckt.

Generell zu 2FA:

Somit braucht der Angreifer im schlimmsten Fall also dein Handy.

Wenn aber ein anderes Gerät in deinem Heimnetzwerk kompromittiert ist, könnte der Angreifer sich über dein vertrautes Netzwerk auch ohne einloggen.

Das liegt daran, dass meist das Heimnetzwerk standartmäßig vom double-check ausgeschlossen ist, du möchtest ja nicht immer wenn du daheim bist 2FA machen müssen. Von wo anders aus kennst du das vielleicht, dass dann der Check kommt.

Auch könnte per Session-Hijacking der Cookie ohne Authentifizierung gestohlen werden, also dass der Angreifer dann eingeloggt ist, sofern ein Netzwerkgerät kompromittiert ist.

Oder dein Handy selbst ist kompromittiert..

...zur Antwort

Wenn es drei Richtige geben soll, hast du drei der 7 richtigen Lottozahlen auf dem Zettel.

Jetzt gibt es in der Kombinatorik aber verschiedene Möglichkeiten, diese 3 auf die 7 Plätze auf deinem Stimmzettel zu verteilen.

zum Beispiel:

oder



...

Die Wahrscheinlichkeit ist also 3 aus Sieben auszuwählen, demnach



Da nicht unter verschiedenen falschen oder richtigen Zahlen unterschieden wird, ohne Beachtung der Reihenfolge.

Demnach gilt für

was 35 ergibt.

Ich hoffe ich konnte dir helfen.

...zur Antwort

Du könntest zum Beispiel das automatische Starten der Ausführbaren Datei WerFault.exe verhindern. Dazu benötigst du einen USB-Stick auf den du die Windows ESD-Funktion spielst. Den Installer findest du hier und wählst

Erstellen von Installationsmedien für Windows 11

und das Media-Creation-Tool wendest du dann auf einen USB Stick an, der mindestens 8 GB fasst. Danach kannst du nach diesem Youtube-Video bis 3:30 vorgehen, also von diesem Stick booten und wie im Video gemacht zu einer Explorer-Instanz navigieren (Funktioniert auf Win10 wie Win11). Nun kannst du auf dein File-System mit den nötigen Rechten zugreifen, ohne das kaputte Windows zu starten.

Du hast nun einige Optionen:

  1. Autostart-Ordner leeren: Falls WerFault.exe keine Windows-Datei ist solltest du diese mit etwas Glück hier finden: C:\Users\BENUTZERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup .
  2. Wichtige Daten retten, indem du einen weiteren Stick oder ähnliches verwendest.
  3. Windows auf Fehler prüfen, oder / und neu installieren.
  4. auf deinen Stick doch einen Windows-10-Installer aufspielen um Windows 10 anstatt 11 zu installieren, da Win11 noch einige Kinderkrankheiten aufweist.
  5. mit der Eingabeaufforderung Problembehandlung betreiben.

Ich würde aber empfehlen, Windows erst einmal im abgesicherten Modus zu starten und von da aus Problembehandlung zu betreiben.

Ich hoffe, ich habe dir damit etwas geholfen.

...zur Antwort

Du kannst zum Beispiel den Punkt

Bild zum Beitrag

für einen Eckpunkt von ABCD annehmen.

Zum Beispiel:

Bild zum Beitrag

Damit kannst du AB berechnen:

Bild zum Beitrag

Das führt dann (hier) zum Vektor:

Bild zum Beitrag

Du kannst noch AD bestimmen:

Bild zum Beitrag

hier:

Bild zum Beitrag

Wir erhalten 2 Vektoren über deren Aussage in Länge wir arbeiten dürfen, ohne etwas kaputtzumachen:

Bild zum Beitrag

und die Fläche ermitteln:

Bild zum Beitrag

...zur Antwort

Am besten ist es, Interferenz zu vermeiden.

Es gibt drei nicht überlappende WLAN-Kanäle im 2,4-GHz-Band (1, 6 und 11). Wenn Sie einen Kanal wählen, der nahe an einem Kanal liegt, der bereits von einem anderen WLAN-Netzwerk in der Nähe verwendet wird, kann dies zu Interferenzen und Leistungsproblemen führen.

...zur Antwort

Um sicherzustellen, dass eine gelöschte Datei nicht wiederhergestellt werden kann, müssen Sie die Bereiche der Festplatte überschreiben, in denen die Datei gespeichert war. Da Sie den Namen der Datei nicht mehr kennen, ist der beste Ansatz, den gesamten freien Speicherplatz auf der Festplatte sicher zu überschreiben.

Es gibt verschiedene Tools, die Ihnen helfen können, den freien Speicherplatz sicher zu überschreiben. Einige dieser Tools sind:

  1. CCleaner (Windows) - CCleaner ist ein kostenloses Tool, das nicht nur Ihren PC optimiert und bereinigt, sondern auch eine Option zum sicheren Löschen von freiem Speicherplatz bietet. Um den freien Speicherplatz mit CCleaner zu überschreiben, gehen Sie folgendermaßen vor:
  2. a. Laden Sie CCleaner von der offiziellen Website herunter und installieren Sie es: https://www.ccleaner.com/ccleaner b. Starten Sie CCleaner und klicken Sie auf "Tools" in der linken Seitenleiste. c. Wählen Sie "Laufwerk wiper" (Festplatten-Wischer) aus. d. Wählen Sie "Nur freien Speicherplatz löschen" und wählen Sie das Laufwerk aus, auf dem die Datei gespeichert war. e. Wählen Sie unter "Sicherheit" die gewünschte Anzahl von Überschreibvorgängen aus (mehr Überschreibvorgänge bedeuten mehr Sicherheit, aber auch mehr Zeit). f. Klicken Sie auf "Wischen", um den Vorgang zu starten.
  3. BleachBit (Windows, Linux) - BleachBit ist ein weiteres kostenloses und Open-Source-Tool zum Bereinigen und Optimieren Ihres PCs. Es bietet auch eine Option zum sicheren Löschen von freiem Speicherplatz:
  4. a. Laden Sie BleachBit von der offiziellen Website herunter und installieren Sie es: https://www.bleachbit.org/ b. Starten Sie BleachBit und klicken Sie auf "Datei" und dann auf "Freien Speicherplatz löschen". c. Wählen Sie das Laufwerk aus, auf dem die Datei gespeichert war, und klicken Sie auf "Löschen".

Beachten Sie, dass das Überschreiben von freiem Speicherplatz bei SSDs (Solid-State-Drives) weniger wirksam sein kann als bei herkömmlichen Festplatten (HDDs) aufgrund von Wear-Leveling-Algorithmen und anderen Funktionen. Bei SSDs ist es empfehlenswert, die eingebaute Secure-Erase-Funktion oder den TRIM-Befehl zu verwenden, um den gesamten Laufwerksinhalt sicher zu löschen. Beachten Sie jedoch, dass dies alle Daten auf dem Laufwerk löscht, nicht nur die gewünschte Datei.

...zur Antwort

Ja, Sie können einen Repeater verwenden, um das WLAN-Signal des Nighthawk EAX80 zu erweitern und die beiden Zimmer in der ersten Etage besser zu versorgen. Der Repeater sollte in der Lage sein, sich drahtlos mit dem Nighthawk EAX80 zu verbinden und das Signal zu verstärken.

Es gibt viele Repeater auf dem Markt, aber da Sie nach einem Netgear-Repeater gefragt haben, empfehle ich den Netgear EX8000 Nighthawk X6S. Der EX8000 unterstützt WiFi 6 und ist ein leistungsfähiger Tri-Band-Repeater, der gut mit Ihrem Nighthawk EAX80 zusammenarbeiten sollte.

Bitte beachten Sie, dass der Netgear EX8000 möglicherweise größer ist als einige andere Repeater. Wenn Sie eine kompaktere Lösung bevorzugen, können Sie sich den Netgear EX6250 anschauen. Der EX6250 ist ein kleinerer und unauffälligerer Repeater, der ebenfalls WiFi 6 unterstützt und mit dem Nighthawk EAX80 kompatibel ist. Die Einrichtung ist ähnlich wie beim EX8000.

...zur Antwort
  1. Nach der ersten Halbwertszeit (6,01 Stunden) ist die Hälfte der ursprünglichen Menge vorhanden (50 %).
  2. Nach der zweiten Halbwertszeit (weitere 6,01 Stunden) zerfällt die Hälfte der verbleibenden Menge, sodass insgesamt nur noch ein Viertel der ursprünglichen Menge vorhanden ist (25 %).

Um die Gesamtzeit zu berechnen, addieren wir die beiden Halbwertszeiten zusammen:

Gesamtzeit = Halbwertszeit * Anzahl der Halbwertszeiten Gesamtzeit = 6,01 Stunden * 2 Gesamtzeit = 12,02 Stunden

Es dauert also 12,02 Stunden, bis von einer Ausgangsmenge Technetiums nur noch ein Viertel vorhanden ist.

...zur Antwort

Es ist schwierig, einen Cloudspeicher-Anbieter zu finden, der 100 GB kostenlosen Speicherplatz anbietet. Die meisten Anbieter bieten in ihren kostenlosen Plänen weniger Speicherplatz an. Einige der bekanntesten Anbieter und ihre kostenlosen Speicherplatzangebote sind:

  1. Google Drive: 15 GB kostenloser Speicherplatz.
  2. Microsoft OneDrive: 5 GB kostenloser Speicherplatz.
  3. Dropbox: 2 GB kostenloser Speicherplatz (erweiterbar durch Empfehlungen).
  4. Box: 10 GB kostenloser Speicherplatz.
  5. pCloud: 10 GB kostenloser Speicherplatz (erweiterbar durch Empfehlungen und Aktionen).

Um 100 GB oder mehr kostenlosen Cloud-Speicherplatz zu erhalten, können Sie entweder mehrere Konten bei verschiedenen Anbietern erstellen oder Angebote nutzen, die zusätzlichen Speicherplatz durch Empfehlungen oder zeitlich begrenzte Aktionen bieten.

Beachten Sie jedoch, dass kostenlose Pläne oft weniger Funktionen und weniger Support bieten als kostenpflichtige Pläne. Abhängig von Ihren Anforderungen und der Sensibilität Ihrer Daten sollten Sie sorgfältig abwägen, ob ein kostenloser Plan ausreicht oder ob ein kostenpflichtiger Plan mit erweiterten Funktionen und Sicherheitsmaßnahmen besser geeignet ist.

...zur Antwort
  1. eine Zahl n einlesen
  2. Wiederhole solange n <= 0 ist
  3. eine Zahl x eingeben
  4. Zuweisung y = 0
  5. Zuweisung p = x
  6. Zuweisung i = 1
  7. Wiederhole solange i kleiner oder gleich n ist:
  8. Zuweisung k istz i zum quadrat
  9. Zuweisung: y um p durch k erhöhen
  10. Zuweisung: i um 1 erhöhen
  11. Ausgabe: y
...zur Antwort

Das mit den Mathestunden machen Sie mutmaßlich extra morgens, sodass man auf die Idee kommt, diese sausen zu lassen und genau das ist das Aussieben hierbei.

Klar ist aber, dass sich hier zeigt, wem wirklich viel an seinem Informatikstudium liegt und wer den Weg des geringsten Wiederstandes vorzieht.

Lässt man da nur ein paar sausen, (ob relevant oder nicht finde ich egal, da alles was dir angeboten wird, später für dich wichtig sein kann, auch wenn es nicht abgefragt werden sollte) so ist sehr, sehr schnell abgehängt, insbesondere in der Frühphase deines Studiums.

Daher rate ich dir dringend davon ab, Mathe sausen zu lassen.

Solltes du an Mathe kein gesteigertes Interesse durch die Informatik haben, solltest du deinen Studienweg überdenken.

Frohes gelingen und ein schönes Wochenende,

Lukas Z.

...zur Antwort

Du könntest zum Beispiel in Python die WLan-Passwörter auslesen oder Browserpasswörter in C++ klauen, oder eine revshell aufbauen. Einen Virus in dem Sinne heißt das dann nicht mehr, wird aber umgangssprachlich eh alles so genannt.

Das darfst du dann schon, solange du mit der Erlaubnis deines Lehrers dieses Programm auf einem Computer ausfürst. Wenn dus auf deinem Eigenen machst, entscheidest sowieso du.

Wenn du ein bisschen drüber chatten willst, dann komm doch kurz auf dc.

CoolBlockZock#2993

...zur Antwort

Naja,

so wie das aussieht liegt ja keine Innterei frei.

Man könnte versuchen, es in die Ursprungsposition zu biegen,

dabei könnte der Pin dir aber abbrechen, wenn du Pech hast. Kommt auf die Qualität an.

Wenn beide wieder normal aussehen, könnte man es als Zwischenlösung noch nutzen, wenn du nicht warten willst.

Über Themen wie Versicherung und Sicherheit brauche ich aber nicht weiter zu reden, du siehst ja die anderen Antworten.

...zur Antwort

Naja,

an sich hat die Windows Command Prompt erst mal nichts mit Hacking an sich zu tun, es handelt sich hierbei um ein Terminal, das zwar Befehle entgegennimmt, aber dieses führt auch nur (je nach Fall) andere Programme aus.

D.h. das ganze "hacking" ist eigentlich viel mehr Analyse von Systemen, mit Tools die es schon gibt, Kali Linux ist ein eigenes Betriebssystem für Penetrationtester und bietet einen sehr umfangreichen Toolsatz für Exploitation und Analyse, von Wifi Hacking bis hin zu Payload gen.

Oft, bzw. meist sind hier aber jedoch eigene, angepasste Tools vonnöten, die dann in verschiedenen Sprachen wie Python, aber auch C, C++ usw. implementiert werden.

Es werden dann zum Beispiel aktiv Buffer-Overflows, also Speicherlecks in anderen Programmen bzw. Systemen ausgenutzt, um zum Beispiel erweiterte Rechte zu erlangen. Wenn ich also die CMD benutze, dann eher, um Programme, die den ganzen Hacking shit machen, auszuführen, jedoch nicht, um alleine damit in Systeme einzudringen. Es gibt auch .bat powershell payloads für windows remshells, die ein Bisschen was damit zu tun haben, ein Beispiel habe ich selbst implementiert und schließlich dann doch veröffentlicht, aber die habe ich hier eher außen vor gelassen, da das eher Payloads sind.

Jeder "Hacker" muss also auch Kenntnis in einigen Sprachen und auch Protokollen haben, weil man nur so verstehen kann, wie die einzelnen Prorgamme acuh funktionieren.

Ich hoffe, ich habe dich ein wenig weiter gebracht.

LG Lukas

...zur Antwort

Ich habe deine Frage wie folgt verstanden:

for i in range(1, OBERGRENZE):
  print(i, end=" ")
  if (i % 10 == 0)
    print()

Damit wird bis zu einer bestimmten obergrenze in 10er-Schritten die aktuelle Zahl ausgegeben.

"end" ist ein Defaultparameter von print, der ist standartmäßig auf '\n', also neue zeile. Wir ersetzen den dann einfach mal durch ein Leerzeichen.

print() gibt nur eine neue Zeile aus.

Ausgabe (z.b.):

1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100

LG Lukas

...zur Antwort

Du musst zuerst beide auf den gleichen Nenner bringen, weil 6 entspricht 6/1. Hier kannst du beide seiten mit 3 multiplizieren, also dann 18/3. Wenn du 18 durch 3 teilst ist das also eine andere Schreibweise für 6. Wenn beide denselben Nenner haben. kannst du die Zähler einfach addieren, alsi 2/3 + 18/3 = 20/3, das ist dann dein Ergebnis.

LG Lukas

...zur Antwort