Zugriffsüberlauf
Nach oben zu Zugriffsfehler
Der Fehler Zugriffsüberlauf
tritt auf, weil auf Arbeitsspeicher nach dem Ende einer Speicherregion zugegriffen wird; z.B. die Indizierung eines dritten Array-Elements in einer Liste mit zwei Elementen oder das Kopieren von Daten nach dem Ende einer Speicherregion. Beide Fehler sind in dem folgenden Code vorhanden:
#include <tchar.h>
#pragma hdrstop
#include<stdio.h>
#include<dir.h>
class someclass{
int fnumber;
public:
int getnumber(){return fnumber;}
void setnumber(int nw){fnumber = nw;}
int doublev(int val){return val*2;}
int publicalval;
};
void myf()
{
someclass *myc = new someclass[2];
int answ;
answ = myc[2].publicalval = 10; //error
delete[] myc;
char *chlist = new char[10];
strcpy(chlist, "1234567890" ) ; // error
delete [] chlist;
}
int _tmain(int argc, _TCHAR* argv[])
{
myf();
return 0;
}