Array mit Pointer aufrufen



  • Hallo ich bin noch recht neu in der C Programmierung.Ich habe ein Struct erstellt in welchem ich verschieden Nachrichten und ihre länge ablege. Das ganze hab ich in ein Array verpackt so das ich die verschiedenen Nachrichten als Tabelle vorligen habe. Das hat auch alle super geklappt nun zu meiner Frage.Ich soll jetzt das ganze mit einem Pointer aufrufen und je nach dem welchen Pointer ich benutze erhalte ich die passende Nachricht.Wie mache ich das?



  • Ich werde leider nicht schlau aus deiner Beschreibung, ohne deinen genauen Kenntnisstand und ein bisschen Code gesehen zu haben. Beides solltest du ändern.



  • ich möchte ein array in dem ein struct liegt über einen Pointer aufrufen



  • Sorry Code liegt auf der Arbeit und ich frag mich die ganze Zeit wie ich da vorgehen muss.



  • Studen08 schrieb:

    ich möchte ein array in dem ein struct liegt über einen Pointer aufrufen

    Du weißt aber schon, dass Strukturen selten (um ehrlich zu sein, nie) in einem Array liegen, sondern höchstens Informationen über oder Objekte von Strukturen beinhalten, oder?

    Zur Sache: um auf einen Integer in einem Array zuzugreifen, verwendest du ja den Index-Operator:

    int Numbers[]={3,5,84,2,54,1,23};
    for(int i=0;i<8;i+=1)
    {
        printf("%d\n",Numbers[i]);
    }
    

    Der Zugriff auf jedes Element eines Arrays, egal welchen Typs, erfolgt über den Index-Operator. Es spricht also nichts dagegen, ihn auch bei Objekten deiner Struktur anzuwenden.



  • Studen08 schrieb:

    ich möchte ein array in dem ein struct liegt über einen Pointer aufrufen

    Wo ist Dein Problem? Ein Array kann man nicht mit einem Pointer aufrufen. Man/frau ruft Funktionen auf.

    Ein Zeiger kann auf ein Array verweisen. Er kann auch auf ein beliebiges Element Deines Arrays verweisen. Vieleicht nützt Dir sowas:

    struct wasAuchImmer
    {
        ...
    } array[1235], *zeiger;
    
    zeiger=array+5;        // Adresse des 6. Elements in den Zeiger
    function( zeiger );
    zeiger=array;          // Adresse des 1. Elements in den Zeiger
    function( zeiger );
    

    mfg Martin


Anmelden zum Antworten