NULL-Pointer funktioniert nicht

Dieses Thema im Forum "C/C++" wurde erstellt von supervisor, 13.09.2008.

  1. #1 supervisor, 13.09.2008
    supervisor

    supervisor Eroberer

    Dabei seit:
    15.06.2008
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    Bayern
    hallo!

    ich schreib mal wieder ein (c-)programm, und bis jetzt läuft auch alles gut. doch jetzt hab ich ein 2-ebenen-char-array, genauer gesagt dahier:
    Code:
    char param[20][100];
    
    das is für einen funktionsaufruf von execv() und es werden die parameter für die aufzurufende funktion reingeschrieben. das klappt auch. allerdings muss der letzte string ein NULL-Pointer sein, aber das funktioniert irgendwie nich. mein gcc gibt immer 'incompatible types in assignment' zurück. ich habs schon auf diese verschiedenen arten versucht:
    Code:
    param[i] = NULL;
    
    (geht nich)

    Code:
    param[i] = (char*)NULL;
    
    (geht auch nich)

    Code:
    param[i] = (char*)0;
    
    (wieder nix)

    kann mir einer weiterhelfen?????
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Nuja, dein Array hat auch 2 Dimensionen, also: param[j] = NULL; oder param[j] = '';
     
  4. #3 supervisor, 13.09.2008
    supervisor

    supervisor Eroberer

    Dabei seit:
    15.06.2008
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    Bayern
    ne, der char-pointer param soll ja auf die speicheraddresse NULL zeigen, nicht die speicheraddresse auf die von param verwiesen wird, soll 0 enthalten
     
  5. Gast1

    Gast1 Guest

    NULL ist eine adresse (ins nichts). du hast aber ein datenfeld von x·y zeichen.

    Code:
    char *param[20];
    param[i] = NULL;
     
  6. #5 supervisor, 13.09.2008
    supervisor

    supervisor Eroberer

    Dabei seit:
    15.06.2008
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    Bayern
    stimmt, danke, ich musste zwar noch n bischen mit malloc basteln, aber jetzt gehts.

    .hm...in meinem c-buch heisst es immer, dass zwischen nem pointer und nem array kein unterschied ist. anscheinend wohl doch....
     
  7. #6 hoernchen, 13.09.2008
    hoernchen

    hoernchen UBERgarstiges nagetier

    Dabei seit:
    17.02.2005
    Beiträge:
    1.081
    Zustimmungen:
    0
    Ein kleiner Tip aus der Praxis : lass die Finger von Nullpointern; und wenns doch sein soll dann pass hoellisch auf.
     
  8. #7 JBR, 13.09.2008
    Zuletzt bearbeitet: 13.09.2008
    JBR

    JBR Fichtenschonung

    Dabei seit:
    18.03.2007
    Beiträge:
    561
    Zustimmungen:
    0
    Ort:
    Nolop
    Ich habe gerade ein kleines Programm geschrieben um der Sache ein wenig auf den Grund zu gehen und bin dabei auf ein neues Problem gestoßen

    Code:
    #include <stdio.h>
    // Wieso schreibe ich schlechterdings ständig Beispielprogramme ?
    // Das weis ich auch nicht
    // Ach halt doch die Klappe - Verdammte Schizophrenie
    int main()
    {
    	char array[3][6]={"Hallo","Welt"};
    	char** temp;
    	printf("%p %p\n",array[0],array[1]);
    	printf("%s %s\n",array[0],array[1]);
    	temp=array[1];
    	*array[1]=&array[0];
    	*array[0]=temp;
    	printf("%p %p\n",array[0],array[1]);
    	printf("%s %s\n",array[0],array[1]);
    	*array[2]=NULL;
    	
    }	
    	
    
    Ausgabe
    Code:
    0xbf8b682e 0xbf8b6834
    Hallo Welt
    0xbf8b682e 0xbf8b6834
    4allo .elt
    
    ??
     
  9. #8 icephilipp, 13.09.2008
    icephilipp

    icephilipp Foren As

    Dabei seit:
    01.03.2008
    Beiträge:
    91
    Zustimmungen:
    0
    das kann nicht funktionieren du musst die funktion strncpy(char *stringziel,char *stringquelle, size_t anzahl_zeichen) aus string.h nehmen
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. Gast1

    Gast1 Guest

    Das ist falsch. Es gibt schon feine unterschiede.
    Code:
    int array[1000];
    int *pointer = (int*)malloc(1000);
    &array ist die adresse an dem das Array liegt
    &pointer ist die adresse, an der die adresse des Arrays liegt

    oder anders:
    (&array == array)
    (&pointer != pointer)

    die tausend integer von array liegen auf dem stack, die tausend integer, auf die pointer zeigt, auf dem heap.
     
  12. #10 dietox, 14.09.2008
    Zuletzt bearbeitet: 14.09.2008
    dietox

    dietox Eroberer

    Dabei seit:
    26.05.2007
    Beiträge:
    74
    Zustimmungen:
    0
    Na da erzählen viele Bücher aber was Anderes :D
    Vor dem Initialisieren (Speicherzuweisung) und nach dem Freigeben des Zeigers sollte man, diesen zufolge, dem Pointer den Wert ´NULL´ zuweisen.

    Aber ich gebe dir natürlich Recht, dass man, wie sonst auch im Allgemeinen mit Pointern, sehr vorsichtig mit dem Wert ´NULL´ umgehen muss, wenn man erwähnt, dass Compiler ´NULL´ auch mal auf verschiedenste Art und Weise definieren können.
     
Thema:

NULL-Pointer funktioniert nicht

Die Seite wird geladen...

NULL-Pointer funktioniert nicht - Ähnliche Themen

  1. CentOS 7.2: Mailversand funktioniert obwohl nicht definiert

    CentOS 7.2: Mailversand funktioniert obwohl nicht definiert: Hallo Habe CentOS 7.2 installiert/konfiguriert. Testweise habe ich eine mail versendet: mail -s "test mail" email@adresse.de May 25 15:45:04...
  2. Samba 4.1.11 Domänen anbindung funktioniert nicht !!!

    Samba 4.1.11 Domänen anbindung funktioniert nicht !!!: Hallo liebe Ubixboard - User, ich hoffe ihr könnt mir helfen habe schon mehrere Foren durchstöbert und echt zahlreiche Tutorials angeschaut und...
  3. PHPmyAdmin login funktioniert nicht

    PHPmyAdmin login funktioniert nicht: Hallo zusammen, nachdem ich gestern meine PHP Version von 5.3 auf 5.4 geupdated habe, kann ich mich nicht mehr in PHPmyAdmin einloggen. Komisch...
  4. Tabs wiederherstellen funktioniert bei Firefox nicht

    Tabs wiederherstellen funktioniert bei Firefox nicht: Hallo, seit kurzem kann ich in Firefox keine geschlossenen Tabs wiederherstellen. Wenn ich auf den entsprechenden Button klicke, passiert...
  5. Automatisierung via Netzwerk funktioniert nicht richtig

    Automatisierung via Netzwerk funktioniert nicht richtig: Hey Leute, Habe da ein Problem das ich einfach nicht verstehe und wo ich auch nicht weis wonach ich suchen soll, folgender Code: #!/bin/bash...