Methode für ungültig umgewandeltes Objekt aufgerufen

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu CodeGuard-Fehler - Index

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;
}