2016-04-24 13 views
1

Ich habe eine Funktion, die verwendet wird, um Daten aus verschiedenen globalen Strukturen zu ziehen. Also, ich versuche, ein Char-Array in die Funktion zu übergeben, die der Funktion mitteilt, von welcher globalen Struktur (über die Benennung) sie ausgehen soll. Wie auch immer, ich habe Probleme damit, es wie geplant zu benutzen! (Ich bin ein Anfänger bei C).Zugriff auf eine globale Variablenstruktur innerhalb eines Arrays

Beispielcode:

#include<stdio.h> 

// linear interpolation 
float linearInterp(int userTime, char* structure[], char* array[]) 
{ 
    printf("%d", structure[1].array); 
} // end float linearInterp() 

struct heartRate 
{ 
    int time; 
    int beats; 
    char units[8]; 
} HR[50]; 


int main() 
{ 
    float val1; 
    HR[1].beats = 2300; 
    char beating[6] = "beats"; 
    char *p = beating; 
    char hring[3] = "HR"; 
    char *ph = hring; 

    val1 = linearInterp(5, beating, hring); // note: attempted with both p and ph vs beating and hring 
} // end int main() 

Der Code, da es einfach gibt, ist die Fehlermeldung: „. Anfrage Mitglied 'Array' in etwas keine Struktur oder Union

Idealerweise würde mein Code kehrt die Wert zugewiesen zu HR [1] .beats in der Hauptfunktion, 2300.

Ich glaube, dass etwas mit meiner Linie des Denkens falsch sein kann und versucht, eine Schnurvariable in c als der Name eines Feldes zu verwenden irgendeine Hilfe!

Antwort

1

In C gibt es keine Möglichkeit, eine Variable mit ihrem Namen in einer char * abzurufen.

In C gibt es keine Möglichkeit, einen Feldwert einer Strukturvariablen mit dem Feldnamen in einer char * abzurufen.

C ist kein JavaScript.

+0

Ah, gut, danke. Wusste nicht, dass es so nicht funktionieren würde. Ich denke, ich werde dann wahrscheinlich nur Zahlen und Fälle verwenden. – MomoDevi

Verwandte Themen