Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 94, Antworten: 5
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50850, Antworten: 1390
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26624, Antworten: 4194
Gehe zum ersten neuen Beitrag Windows Oberfläche (Schrift,...
Aufrufe: 177, Antworten: 10
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 65, Antworten: 5
Gehe zum ersten neuen Beitrag TabCtrl
Aufrufe: 122, Antworten: 12
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 18, Antworten: 2
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 50, Antworten: 2
Gehe zum ersten neuen Beitrag McAfee AVERT Stinger...
Aufrufe: 14, Antworten: 0
Gehe zum ersten neuen Beitrag Sticky Password 6.0.2...
Aufrufe: 26, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08.11.2006, 10:09   #1 (Direktlink)
Ist öfter hier
 
Registriert seit: 06.11.2006
Ort: Worms
Beiträge: 64
Standard Dynamischer Zeiger mit Zeiger auf Zeiger etc. [kein C++]

Hallo,
ich versuche jetzt schon seit Tagen mein Problem zu finden...
Hier mal meine Mainfunktion:
Code:
int main(void) {
	//auswahl für die Menusteuerung; 
	int auswahl = 0;

	//Pointer für die Werte;
	void **Wert = NULL; // NULLZEIGER
	double *Werte = NULL; 
	*Wert = &Werte;

	do {
		auswahl = werteeingabe(auswahl, *&Wert);
	}while(auswahl);
	
	if(*Wert)
	free (*Wert);

	rewind(stdin);
	return 0;
}

int werteeingabe(int auswahl, **Wert) {

//Hier wird dann das Array allokiert und erst wirklich erstellt...
//Wie ist ja jetzt nicht so wichtig... darum gehts mir auch nicht

}
Was will ich eigentlich machen?
Ja ich will in einer anderen Funktion (also erst später) sagen das der Zeiger von Wert auf ein dynamisches (im Heap befindliches) Array zeigen soll mit dem ich arbeiten will. Da der Benutzer die Anzahl der Werte des Arrays erst noch eingeben muss, zeigt mein Zeiger zu beginn auf die Adresse 0x00000000, was einen Zugriffsfehler zur Folge hat .
Der Zeiger auf den Zeiger hat die Adresse 0xcccccccc. Was mir auch nix bringt.
Ist es Sinnvoll die Adresse des Zeiger auf den Zeiger zu übergeben?
Wie kann ich den Fehler wegbekommen das er mir nicht irgendwo hinzeigt sondern sinnvollerweise dahin wo er keinen Schaden anrichten kann *G*.

Danke im Vorraus
PS: es ist reiner C Quellcode, mit C++ kann ich nix anfangen.
__________________
Gruß zeratul
zeratul ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 08.11.2006, 22:13   #2 (Direktlink)
Ist öfter hier
 
Registriert seit: 06.11.2006
Ort: Worms
Beiträge: 64
Standard Re: Dynamischer Zeiger mit Zeiger auf Zeiger etc. [kein C++]

Code:
int main(void) {
	//auswahl für die Menusteuerung; 
	int auswahl = 0;

	//Pointer für die Werte;
	void **Wert = NULL; // NULLZEIGER
	double *Werte = NULL; 
	*Wert = &Werte;

	do {
		auswahl = werteeingabe(auswahl, *&Wert);
	}while(auswahl);
	
	if(*Wert)
	free (*Wert);

	rewind(stdin);
	return 0;
}

int werteeingabe(int auswahl//WAR FALSCH//anzahl<-!, **Wert) {

//Hier wird dann das Array allokiert und erst wirklich erstellt...
//Wie ist ja jetzt nicht so wichtig... darum gehts mir auch nicht

}
So ein Freund von mir hat mir da auf die Sprünge helfen können (juchu).

Folgendermaßen wäre es dann "korrekt":
Code:
int werteeingabe(int anzahl, *Wert);
int main(void) {
	//auswahl für die Menusteuerung; 
	int anzahl = 0;

	//Pointer für die Werte;
	double *Werte = NULL; 
        //Werteeingabe (spar mir jetzt eine Textaufforderung)
        scanf_s("%d",&anzahl);

	anzahl = werteeingabe(anzahl, &Wert);
	
	free (Wert); 

	rewind(stdin);
	return 0;
}

int werteeingabe(int anzahl, **Wert) {

*Wert = (double *) malloc ( anzahl*sizeof( double ) );
return anzahl;

}
Ok der Zusammenhang ist etwas rausgerissen, mir gings halt Primär um den Zeiger "übergeben" und damit lokal arbeiten... jetzt ist mein Problem ja gelöst *G* und ich kann weitercoden.
zeratul ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen 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.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 06:30 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2