Methode für ungültig umgewandeltes Objekt aufgerufen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Zugriffsfehler


Der Fehler Methode für ungültig umgewandeltes Objekt aufgerufen wird von einem Aufruf einer Methode außerhalb des gültigen Arbeitsspeichers verursacht. Das folgende Beispiel erstellt ein Array mit zwei someclass-Objekten, versucht aber die Methode des dritten Objekts aufzurufen; da Arrays nullbasiert sind, erfolgt der Zugriff auf nicht-initialisierten Arbeitsspeicher.

#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].doublev(5); // error
  delete[] myc;
 
}



int _tmain(int argc, _TCHAR* argv[])
{
	myf();
	return 0;
}