NULL-Pointer funktioniert nicht

Diskutiere NULL-Pointer funktioniert nicht im C/C++ Forum im Bereich Programmieren unter Linux/Unix; 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...

  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

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    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 Gast

    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. Gast1

    Gast1 Gast

    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.
     
  11. #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. Routing funktioniert nur für eine IP

    Routing funktioniert nur für eine IP: Hallo zusammen, ich habe ein sehr komisches Verhalten und kann mir das nicht erklären. Ich habe ein /28 Netz. Darin befinden sich Linuxsysteme...
  2. Warum funktioniert mein BASH - Dialog nicht ?

    Warum funktioniert mein BASH - Dialog nicht ?: Hallo, ich habe hier eine kleine Funktion in BASH geschrieben, die den Benutzer nach einer Lokalen IP Adresse Fragt, und diese dann angpingt....
  3. Xmoto Taste gedrückt halten funktioniert nicht unter Debian 10

    Xmoto Taste gedrückt halten funktioniert nicht unter Debian 10: Hab mir vor 2 Tagen Debian 10 installiert. Dazu wie immer auch das Spiel Xmoto, dessen Spieldaten ich von Debian 9 übertragen habe (und davor...
  4. Anlage einer SWAP-Datei unter CentOS 7 funktioniert nicht

    Anlage einer SWAP-Datei unter CentOS 7 funktioniert nicht: Hallo zusammen, ich verwende einen vServer von Strato (Linux V30) mit CentOS 7 64bit. Hier wollte ich nun einen SWAP-Speicher mit 8GB anlegen -...
  5. 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...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden