---
title: "Minnes fel?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/114697-minnes-fel"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Eitraz"
published: "2004-10-29T21:38:46.000Z"
updated: "2004-10-29T23:05:38.000Z"
replies: 9
views: 462
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/114697-minnes-fel"
---

# Minnes fel?

## #1 — Eitraz, 2004-10-29T21:38Z

Är väll bara aldeles för trött, men kan någon förklara för mig Varför programmet dör vid den fet -och rödmarkerade raden nedan? (Jag får felet **"Unhandled exception in eEngine.exe: 0xC0000005: Access Violation."** vid debuging)

```
TextureID Renderer::addTexture(Image *img) {
	Texture texture;

	texture.height	= img->getHeight();
	texture.width	= img->getWidth();
	texture.depth	= 1;
	texture.image	= img;

	[b][red]if (createTexture(texture)) {[/red][/b]
		return insertTexture(texture);
	}

	delete img;
	return NONE;
}
```

Funktionen **createTexure** befinner sig i en klass som ärver (eller vad det heter) klassen Renderer och det påverkar INTE felet om jag tömmer **createTexture** på kod (och endast har kvar **return true** eller **return false**)

Texture ser ut på följande sätt:

```
struct Texture {
	unsigned int texID;
	unsigned int width;
	unsigned int height;
	unsigned int depth;
	Image *image;
};
```

och klassen Image innehåller bla det här:

```
protected:
	unsigned char *data;
	short int width;
	short int height;
```

Är säkert något oerhört enkelt och dumt fel, men jag har då stirrat mig blind på min kod :)

Permalänk: https://www.webforum.nu/p/114697

## #2 — luna, 2004-10-29T21:59Z

om funktionen createTexture( ... ) är protected så kan jag tänka mig att något sådant fel kan uppstå.

Permalänk: https://www.webforum.nu/p/1473430

## #3 — Eitraz, 2004-10-29T22:00Z

Nix.. den ligger under **public** :l

Permalänk: https://www.webforum.nu/p/1473431

## #4 — luna, 2004-10-29T22:04Z

hmm... skumt.

din texture som du skapar är en lokal instans av Texture, kanske beror på det att, fast iofs borde den inte hugga vid metodanropet... hmmm... jag får tänka lite till...

/R
efter lite tankearbete...
hur ser metoden createTexture ut?

Permalänk: https://www.webforum.nu/p/1473433

## #5 — Eitraz, 2004-10-29T22:13Z

Den ser ut såhär den:

```
bool OpenGLRenderer::createTexture(Texture &texture) {
	glGenTextures(1, &texture.texID);
	glBindTexture(GL_TEXTURE_2D, texture.texID);

	gluBuild2DMipmaps(GL_TEXTURE_2D, 3, texture.width, texture.height, GL_RGB, GL_UNSIGNED_BYTE, texture.image->getData());

	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

	return true;
}
```

MEN, om jag tar bort alla knepiga OpenGL grejor där så får jag fortfarande samma fel (på samma ställe) (har då testat att returnera både false och true)

/R
OpenGLRenderer är en sån här klass ;)

```
class OpenGLRenderer : public Renderer {
```

Permalänk: https://www.webforum.nu/p/1473437

## #6 — luna, 2004-10-29T22:37Z

så om jag förstår allt rätt så ärvs klassen Renderer av klassen OpenGLRenderer. klassen Renderer gör sedan ett metodanrop till en metod i klassen OpenGLRenderer... det där tycker jag verkar lite skumt, såvida inte OpenGLRenderer överlagrar funktionen... vilket den troligtvis inte gör.

således borde Renderer ärva klassen OpenGLRenderer för att metodanropet ska fungera.

kanske bör tillägga att min C++ är lite ringrostig, har suttit för mycket med ren C  :(

Permalänk: https://www.webforum.nu/p/1473446

## #7 — Eitraz, 2004-10-29T22:40Z

Jag har andra funktioner som fungerar "på samma sätt" i samma klasser och då fungerar det utan problem :/

Felet känns lite småskumt, vet inte riktigt vad man ska göra. Har suttit och testat att lagra infon på lite alla möjliga sätt.

Permalänk: https://www.webforum.nu/p/1473448

## #8 — luna, 2004-10-29T22:43Z

i dina fungerande metodanrop... använder du lokala instanser av object där också? Fast det borde fungera iaf...

Permalänk: https://www.webforum.nu/p/1473450

## #9 — Eitraz, 2004-10-29T22:45Z

Det gör jag iofs inte.. men.. ja, hmm

Permalänk: https://www.webforum.nu/p/1473451

## #10 — Eitraz, 2004-10-29T23:05Z

Som jag trodde, det var ett "stirra på fel grej" fel.

Försökte ladda den där bilden innan OpenGLRenderer var fullt initierad.. och det gick ju som det gick..

Permalänk: https://www.webforum.nu/p/1473457

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/114697-minnes-fel
