Pointer und Arrays



  • Ich habe hier etwas probiert zum Thema Pointer

    #include "stdafx.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int *Zeiger, i = 1;
    	float Zahl[6]={1, 2, 3, 4, 5, 6};
    
    	do{
    		*Zeiger = Zahl[i];
    		printf ("Zeiger hat den Wert %d", *Zeiger);
    		i++;
    		}while (i <=6);
    	return 0;
    }
    

    Irgendwie will es mal wieder nicht funktionieren... 😃

    1. Fehlermeldung:
    Run-Time Check Failure #3 - The variable 'Zeiger' is being used without being initialized. => [b]Hat sich erledigt[/b]
    
    2. Fehlermeldung:
    Unbehandelte Ausnahme bei 0x00411463 in Pointer2.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0xcccccccc.
    

    mfg 08mmarte



  • Wenn du ein Array Zahl[6] erzeugst, dann geht das von Zahl[0] bis Zahl[5]. Du sorgst aber dafür, dass im letzten Schleifendurchlauf versucht wird, auf Zahl[6] zuzugreifen. Nebenbei passen da noch ein, zwei andere Dinge nicht und eine for-Schleife wäre hier passender:

    for(int i=0;i<6;i++) {
      Zeiger=&Zahl[i];
      printf("Zeiger zeigt auf den Wert %d", *Zeiger);
    


  • Funktioniert irgendwie nicht recht...

    #include "stdafx.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int *Zeiger = 0;
    	char Zahl[6]={1, 2, 3, 4, 5, 6};
    
    	for(int i=0;i<6;i++)
    		{ 
    			Zeiger=&Zahl[i]; 
    			printf("Zeiger zeigt auf den Wert %d", *Zeiger); 
    		}
    	return 0;
    }
    
    error C2440: '=': 'char *__w64 ' kann nicht in 'int *' konvertiert werden
    


  • Wenn du ein char-Array hast, brauchst du auch einen char-Zeiger.



  • Danke jetzt funktioniert es...

    Werde mich wahrscheinlich noch mehr mit den Pointern beschäftigen müssen 😞 , sind zimlich kompliziert zum lernen.. 😞

    aber naja, nochmals danke..



  • Alles nur Logik und irgendwann wird's einfach zur Gewohnheit und fällt auch nicht mehr schwer... 🙂



  • Mitlerweile kann ich es schon ein bisschen besser...


Anmelden zum Antworten