werte von pointern multipliziern



  • moin,

    ich möchte die werte einer reihe von piontern multiplizieren, also

    char *p1;
    char *p2;
    char *p3;
    
    //bissel mit malloc rumspielen
    
    if(!(p1 * p2 * p3))
    {
        //Fehler
    }
    

    tja, leider meckert mein compiler in der if-zeile rum.

    mein hauptanliegen ist es, mit einem mal zu wissen, ob ein pointer von malloc NULL zurückbekommen hat.

    hoffe, ihr könnt mir helfen,

    euer ItsNotYou



  • ItsNotYou schrieb:

    moin,

    ich möchte die werte einer reihe von piontern multiplizieren, also

    char *p1;
    char *p2;
    char *p3;
    
    //bissel mit malloc rumspielen
    
    if(!(p1 * p2 * p3))
    {
        //Fehler
    }
    

    tja, leider meckert mein compiler in der if-zeile rum.

    mein hauptanliegen ist es, mit einem mal zu wissen, ob ein pointer von malloc NULL zurückbekommen hat.

    hoffe, ihr könnt mir helfen,

    euer ItsNotYou

    Versuchs mit:

    int a = 10;
    int b = 20;
    int c = 30;
    int* p1 = &a;
    int* p2 = &b;
    int* p3 = &c;
    if (!((*p1)*(*p2)*(*p3)))
    {
    
    }
    


  • ItsNotYou schrieb:

    tja, leider meckert mein compiler in der if-zeile rum.

    mein hauptanliegen ist es, mit einem mal zu wissen, ob ein pointer von malloc NULL zurückbekommen hat.

    Der Multiplikationsoperator ist schlicht nicht für Pointer definiert. Du musst es also herkömmlich lösen mit einem Vergleich.

    alex89ru schrieb:

    int a = 10;
    int b = 20;
    int c = 30;
    int* p1 = &a;
    int* p2 = &b;
    int* p3 = &c;
    if (!((*p1)*(*p2)*(*p3)))
    {
    
    }
    

    Das schiesst am Thema vorbei weil eben nicht die Werte der Pointer verglichen werden, sondern die Daten auf die die Pointer zeigen.
    Was du allerdings erreichst ist, dass du tatsächlich erkennst ob einer der Pointer NULL ist. Denn dann wird das Prog wohl mit nem Segfault crashen weil du einen NULL-Pointer dereferenziert hast. Glückwunsch.



  • so wirds gemacht:

    if (!(p1 && p2 && p3))...
    if (!p1 || !p2 || !p3)...
    

    noch fragen?



  • jo danke, an die möglichkeit hatte ich gar nicht gedacht


Anmelden zum Antworten