Ich bin ziemlich neu in C. Ich lerne derzeit über Speicherverluste, und ich versuche, eine mit einem einfachen C-Programm zu erstellen. Ich sollte das laufen lassen, bis es abstürzt, aber wenn ich es benutze, erreicht der verwendete Speicher einen Spitzenwert von ungefähr 95%. Ist mein Code kein Speicherleck? Ist es mit Paging möglich? Hier ist der Code, den ich versuche:Absichtlich abstürzen C-Anwendung mit Speicherverlust
int main(void) {
while (1)
{
char *newArea = malloc(10);
char *mainArea = malloc(10000);
mainArea = newArea;
}
}
versuchen, in den Raum zu schreiben –
Ihr Code ist undicht Speicher, aber kann nicht abstürzen, weil Sie nicht den mallocated Speicher verwenden. – LPs
Sie sollten den Rückgabewert Ihres malloc überprüfen. Wenn Sie 0 erhalten, konnte der Speicher nicht zugeordnet werden. – TheGreatContini