char[0] auf NULL setzen. Problematisch?



  • Hi leute,

    habe folgenden Programmabschnitt, der anhand des ersten characters eines chararrays bestimmt welches item aus einer imagelist geladen wird.

    switch (fchar[0])
    			  {
    				case '-':
    				typechar[0]=0;
    				break;
    				case 'd':
    				typechar[0]=1;
    				break;
    				case 'l':
    				typechar[0]=2;
    				break;
    				default:
    				typechar[0]=5;
    				break;
    			  }
    

    fchar is kein pointer.
    Ich möchte bei default gerne typechar[0] = NULL; sagen.
    Geht nur darum das ich das dann übersichtlicher finde.
    Wenn ich später dann überprüfe:

    if (!typechar[0] == 5)
    // oder
    if (typechar[0] != 5)
    // Ich würd lieber sagen
    if (!typechar[0] == NULL)
    // oder 
    if (typechar[0] != NULL)
    

    Ist das gefährlich wenn ich das auf NULL setze?
    NULL bedeute für mich ( kenne das aus SQL )
    NULL = garnix , 0 = numerischer wert.
    Danke!!



  • sehe keine gefahr.
    K.



  • Cool danke.
    Andere Frage nen: char *pchar;
    Lösche ich indem ich sage
    pchar = NULL;
    oder?
    Dann hat er keine Adresse mehr zugewiesen.
    Danke
    Bye



  • mit pchar = NULL; setzt du den pointer auf null. dann kannst du nicht mehr darauf zugreifen. vorher solltest du aber den speicher mit free( pchar ); freigeben.
    willst du aber nur den inhalt löschen macht man das üblicherweise mit pchar[0]='\0';
    K.



  • Also ich sehe schon eine Gefahr.
    Was ist, wenn für NULL 0 definiert ist?
    Schlussendlich kann man nie sagen, dass nichts in einem char steht. Es steht immer eine Zahl drin. Man kann nur ein Kennzeichen festlegen, dass besagt, dass nichts drin ist. Allerdings wär mir da ein -1 (oder eine selbstdefinierte Konstante mit diesem Wert) sicherer als NULL, denn wie gesagt, es könnte sich bei NULL auch um 0 handeln.


Anmelden zum Antworten