CommNews Forum Home  

Zurück   CnC Foren > Verschiedenes > Tech-Support / Tech-Talk

Antworten
 
Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 07-01-2008, 17:54
Benutzerbild von Der_Mosch
Der_Mosch Der_Mosch ist offline
Fieser Pappkopp

 
Registriert seit: Jan 2001
Beiträge: 8.505
Der_Mosch ist...
Der_Mosch eine Nachricht über ICQ schicken Der_Mosch eine Nachricht über MSN schicken
Style: cncboard
Software: - C++ - Probleme

Hier ist mein Code:

Code:
#include <iostream>
#include <windows.h>
#include <conio.h>

int KeyInput (int SleepTime)
{
    _getch ();

    if (GetAsyncKeyState (VK_UP))     return  1;
    if (GetAsyncKeyState (VK_DOWN))   return  2;
    if (GetAsyncKeyState (VK_LEFT))   return  3;
    if (GetAsyncKeyState (VK_RIGHT))  return  4;
    if (GetAsyncKeyState (VK_RETURN)) return  5;
    if (GetAsyncKeyState (VK_SPACE))  return  6;
    if (GetAsyncKeyState (VK_ESCAPE)) return  7;

    Sleep (SleepTime);
    return 0;
}


int main()
{

const int GAME_ARRAY_WIDTH = 9; //Jeweils +1, da es sich um
const int GAME_ARRAY_HEIGTH = 6;//Angaben für ein Array handelt

int gameArray[GAME_ARRAY_WIDTH][GAME_ARRAY_HEIGTH];

for (int y = 0; y <= GAME_ARRAY_HEIGTH; ++y)
	for (int x = 0; x <= GAME_ARRAY_WIDTH; ++x)
		gameArray[x][y] = 0;

for (int y = 0; y<= GAME_ARRAY_HEIGTH; ++y)
{
	for (int x = 0; x <= GAME_ARRAY_WIDTH; ++x)
		std::cout << gameArray[x][y];
	std::cout << "\n";
}


	return 0;
}
Hier ist mein Problem:

Code:
"1.exe": "D:\Users\Mosch\Documents\Visual Studio 2005\Projects\1\debug\1.exe" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"1.exe": "D:\Windows\System32\ntdll.dll" geladen, Keine Symbole geladen.
"1.exe": "D:\Windows\System32\kernel32.dll" geladen, Keine Symbole geladen.
"1.exe": "D:\Windows\System32\apphelp.dll" geladen, Keine Symbole geladen.
Eine Ausnahme (erste Chance) bei 0x00000000 in 1.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.

STATUS_STACK_BUFFER_OVERRUN encountered
Windows hat einen Haltepunkt in 1.exe ausgelöst.

Dies kann auf eine Beschädigung des Heaps zurückzuführen sein und weist auf ein Problem in 1.exe oder in einer der geladenen DLLs hin.

Weitere Analyseinformationen finden Sie möglicherweise im Ausgabefenster.
Das Programm "[464] 1.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
Irgendwelche Vorschläge? Das ist ja nun wirklich ein extrem simpler Code und ich weiss nicht, was da solche Probleme verursacht.
__________________
Zitat:
Zitat von Mokus Beitrag anzeigen
PS: Das Loch interressiert mich schon seit 7 Jahren
I ELUCIDATE THE TRUTH OF A CASE FROM NOW ON!
Mit Zitat antworten
  #2  
Alt 07-01-2008, 23:33
Benutzerbild von Gonzo
Gonzo Gonzo ist offline
Cabal

 
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 2.476
Gonzo hat noch keine Bewertung oder ist auf 0
Style: USA
Du darfst die for-Schleifen nicht <= sondern nur < ausführen
gameArray[9][6] = 0; // ist ungültig und gibt ne Zugriffsverletzung
Ein Array fängt halt bei 0 an und hat x Elemente -> [x] ist ausserhalb des Arrays
__________________


MfG Gonzo
Mit Zitat antworten
  #3  
Alt 08-01-2008, 00:01
Benutzerbild von Der_Mosch
Der_Mosch Der_Mosch ist offline
Fieser Pappkopp

 
Registriert seit: Jan 2001
Beiträge: 8.505
Der_Mosch ist...
Der_Mosch eine Nachricht über ICQ schicken Der_Mosch eine Nachricht über MSN schicken
Style: cncboard
Ich Idiot hab meine Konstanten falsch initialisiert. Ich kanns nicht glauben, dass mir diese diese OFFENSICHTLICHE SCHEISSE nicht aufgefallen ist. Und ich hab mir das extra noch danebenkommentiert!

Kann den Thread mal einer löschen, ist ja peinlich
__________________
Zitat:
Zitat von Mokus Beitrag anzeigen
PS: Das Loch interressiert mich schon seit 7 Jahren
I ELUCIDATE THE TRUTH OF A CASE FROM NOW ON!
Mit Zitat antworten
  #4  
Alt 08-01-2008, 00:24
Benutzerbild von Gonzo
Gonzo Gonzo ist offline
Cabal

 
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 2.476
Gonzo hat noch keine Bewertung oder ist auf 0
Style: USA
lol, mach dir nix draus, passiert jedem mal
__________________


MfG Gonzo
Mit Zitat antworten
  #5  
Alt 08-01-2008, 00:27
Benutzerbild von MyersGer
MyersGer MyersGer ist offline
Moderator

 
Registriert seit: Jan 2002
Ort: hier :p
Beiträge: 8.002
MyersGer hat noch keine Bewertung oder ist auf 0
MyersGer eine Nachricht über ICQ schicken MyersGer eine Nachricht über MSN schicken MyersGer eine Nachricht über Yahoo! schicken
OL Nick: MyersGer
Style: vBulletin Default
Nur wegen offensichtlicher Peinlichkeiten, die der Unterhaltung der Allgemeinheit dienen, werden keine Threads gelöscht. Sonst müsste man hier ja viel zu viel löschen

Außerdem hast du deine Konstanten nicht falsch initialisiert. Man sollte einfach nur < statt <= verwenden. Dann muss man weniger nachdenken Sonst muss du bei der Array Definition immer noch +1 rechnen. Sieht auch doof aus und man weiß unten nicht, was man oben geschrieben hat.
__________________
C3H6O Aceton

Burning squirrel

Und nicht vergessen:
Dieser Beitrag hat Superkuh-Kräfte!
Mit Zitat antworten
  #6  
Alt 08-01-2008, 03:09
Benutzerbild von Der_Mosch
Der_Mosch Der_Mosch ist offline
Fieser Pappkopp

 
Registriert seit: Jan 2001
Beiträge: 8.505
Der_Mosch ist...
Der_Mosch eine Nachricht über ICQ schicken Der_Mosch eine Nachricht über MSN schicken
Style: cncboard
Zitat:
Zitat von MyersGer Beitrag anzeigen
Außerdem hast du deine Konstanten nicht falsch initialisiert. Man sollte einfach nur < statt <= verwenden. Dann muss man weniger nachdenken
Ich weiss, dass das ne Alternative wäre, nur stört es mich, dass die Spielfeldgrösse dann ein Punkt niedriger aussieht, als sie es eigentlich ist (äh... du weisst, was ich meine).
__________________
Zitat:
Zitat von Mokus Beitrag anzeigen
PS: Das Loch interressiert mich schon seit 7 Jahren
I ELUCIDATE THE TRUTH OF A CASE FROM NOW ON!
Mit Zitat antworten
  #7  
Alt 08-01-2008, 09:20
Benutzerbild von MyersGer
MyersGer MyersGer ist offline
Moderator

 
Registriert seit: Jan 2002
Ort: hier :p
Beiträge: 8.002
MyersGer hat noch keine Bewertung oder ist auf 0
MyersGer eine Nachricht über ICQ schicken MyersGer eine Nachricht über MSN schicken MyersGer eine Nachricht über Yahoo! schicken
OL Nick: MyersGer
Style: vBulletin Default
Ähm ne nicht ganz Auf jeden Fall würde das Programm genauso abstürzen, wenn du das machst, was du in deinem vorherigen Post geschrieben hast, also das Ändern der Konstanten.

Du müssteste ja
Code:
const int GAME_ARRAY_WIDTH = 8;
const int GAME_ARRAY_HEIGTH = 5;

int gameArray[GAME_ARRAY_WIDTH+1][GAME_ARRAY_HEIGTH+1];

for (int y = 0; y <= GAME_ARRAY_HEIGTH; ++y)
oder

Code:
const int GAME_ARRAY_WIDTH = 9; //Jeweils +1, da es sich um
const int GAME_ARRAY_HEIGTH = 6;//Angaben für ein Array handelt

int gameArray[GAME_ARRAY_WIDTH][GAME_ARRAY_HEIGTH];

for (int y = 0; y <= GAME_ARRAY_HEIGTH-1; ++y)
(hier haben die beiden Kommentare dann den Sinn, den sie eigentlich beinhalten)
schreiben, damit es zu keinem Speicherzugriffsfehler kommt.

Da sieht

Code:
const int GAME_ARRAY_WIDTH = 8;
const int GAME_ARRAY_HEIGTH = 5;

int gameArray[GAME_ARRAY_WIDTH][GAME_ARRAY_HEIGTH];

for (int y = 0; y < GAME_ARRAY_HEIGTH; ++y)
irgendwie am sinnvollsten aus. Oben schreibt man hin, wie groß das Spielfeld sein soll und so groß isses dann auch. Quasi WYSIWYG


Oder ist es gerade einfach noch zu früh für mich und ich habe deinen Post nicht ganz verstanden?!
__________________
C3H6O Aceton

Burning squirrel

Und nicht vergessen:
Dieser Beitrag hat Superkuh-Kräfte!
Mit Zitat antworten
  #8  
Alt 08-01-2008, 00:30
Benutzerbild von AMD-Powered
AMD-Powered AMD-Powered ist offline
Moderator

 
Registriert seit: Jan 2004
Ort: Nähe Frankfurt/Main
Beiträge: 7.036
AMD-Powered ist...
OL Nick: AMDPowered ID 175
Style: vBulletin Default
Zitat:
Zitat von Der_Mosch Beitrag anzeigen
Kann den Thread mal einer löschen, ist ja peinlich
NÖ!!!

Will ich doch nicht dafür verantwortlich sein, dass du nochmal nach der Lösung suchst und nen Thread erstellst...

ergo:

... er bleibt.

Hier sind schon ganz andere Fragen gestellt worden und peinlich brauchts dir auch nicht sein. Zudem waren bestimmt schon 150.000 Google Bots da und haben alles gespeichert.


EDIT: MyersGer auch mal im Lande? Schon lange nichts mehr von dir gelesen.
__________________
Gruß AMD-Powered

Geändert von AMD-Powered (08-01-2008 um 00:34 Uhr).
Mit Zitat antworten
  #9  
Alt 08-01-2008, 00:41
Benutzerbild von MyersGer
MyersGer MyersGer ist offline
Moderator

 
Registriert seit: Jan 2002
Ort: hier :p
Beiträge: 8.002
MyersGer hat noch keine Bewertung oder ist auf 0
MyersGer eine Nachricht über ICQ schicken MyersGer eine Nachricht über MSN schicken MyersGer eine Nachricht über Yahoo! schicken
OL Nick: MyersGer
Style: vBulletin Default
Kommt drauf an, wo man liest. Allgemein habe ich allerdings eher eine lesende Rolle eingenommen. Und Aceton und was sonst so abgeht verschlingt auch einiges an Zeit. Da bleibt halt zum Schreiben nicht mehr viel Zeit.
__________________
C3H6O Aceton

Burning squirrel

Und nicht vergessen:
Dieser Beitrag hat Superkuh-Kräfte!
Mit Zitat antworten
  #10  
Alt 08-01-2008, 00:50
Benutzerbild von AMD-Powered
AMD-Powered AMD-Powered ist offline
Moderator

 
Registriert seit: Jan 2004
Ort: Nähe Frankfurt/Main
Beiträge: 7.036
AMD-Powered ist...
OL Nick: AMDPowered ID 175
Style: vBulletin Default
Ist schon ok, hat mich ja auch nur so gefreut mal wieder was von dir zu lesen, dass ich dich irgendwie aus der Reserve locken musste um dir noch nen Post zu entlocken.

Hat ja auch geklappt. ^^


Ich lese im Moment auch mehr als ich schreibe.
__________________
Gruß AMD-Powered
Mit Zitat antworten
Antworten

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:09 Uhr.


Powered by vBulletin Version 3.7.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS

Affiliates
United Forum GetBoinKeD cnc.onlinewelten.de