3 Pluspunkte 0 Minuspunkte
Wie kann ich ein Array (eine Liste) aus verschiedenen Datentypen in C erstellen?
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Ein Array in C kann nur Elemente desselben Datentyps enthalten, sei es Ganzzahlen, Gleitkommazahlen, Bytes oder andere Datentypen. Es ist nicht möglich, verschiedene Datentypen innerhalb desselben Arrays zu mischen.

Wenn Sie verschiedene Datentypen in einem einzigen "Container" speichern möchten, müssen Sie eine andere Datenstruktur verwenden, wie z.B. eine Struktur (struct) oder eine Union (union).

#include <stdio.h>

union MixedData {
    int intValue;
    float floatValue;
    char stringValue[20];
};

int main() {
    union MixedData data;

    data.intValue = 42;
    printf("Integer value: %d\n", data.intValue);

    data.floatValue = 3.14;
    printf("Float value: %f\n", data.floatValue);

    strcpy(data.stringValue, "Hello, C!");
    printf("String value: %s\n", data.stringValue);

    return 0;
}

von  
0 Pluspunkte 0 Minuspunkte

Du kannst eine Struktur erstellen und den Wert als ein Union darin speichern.

#include <stdio.h>
#include <string.h>

struct Variable {
    int type;  // Indicates the type of data stored (0 for int, 1 for float, 2 for string)
    union {
        int intValue;
        float floatValue;
        char stringValue[20];
    } data;
};

int main() {
    struct Variable v;

    v.type = 0;
    v.data.intValue = 42;
    printf("Integer value: %d\n", v.data.intValue);

    v.type = 1;
    v.data.floatValue = 3.14;
    printf("Float value: %f\n", v.data.floatValue);

    v.type = 2;
    strcpy(v.data.stringValue, "Hello, C!");
    printf("String value: %s\n", v.data.stringValue);

    return 0;
}
von