Struktura jako element tablicy typu static const *char

0

Czy jest możliwe użycie tablicy w taki sposób:

   
void new_room(struct my_struct roo){
  static const char* fields[] = { "ID", "DEF" };
  static const char* data[] = { roo.id, roo.def };
insert(where, fields,data, 2);
}

Chcę aby elementami tablicy były elementy struktury argumentu, aby móc przekazać to dalej:

void insert(char *where, const char *fields[], const char *datas[], int count){
    int new_id = return_free_id(where);
    
    connecting("w", new_id, where);
    
    for(int i = 0; i < count; ++i){
        fprintf(data, fields[i], NULL);
        fprintf(data, ":%s\n", datas[i]);
        
    }

    
    
    
}

Chcę utworzyć funkcje do zarządzania tekstową bazą danych.

0

Nie bardzo rozumiem sensu pytania ...
Zakładasz że kompilator cię okłamuje?

0

Moze inaczej.
Czy jest możliwe wypełnienie tablicy typu static const char* tak, aby jej elementy miały zawartość struktur? Tzn na przykładzie:


struct my_struct{
    int id;
    int def;
}

struct my_struct roo; 

roo.id = 5;
roo.def = 123;

static const char* data[] = { roo.id, roo.def }

printf("%s", data[0]) // aby wyswietlilo 5
printf("%s", data[1]) // aby wyswietlo 123
 
0

Bez wycieków pamięci - nie widzę takie możliwości.

0

Nie ma takiej możliwości.

0
kaczus napisał(a):

Nie ma takiej możliwości.
No bez przesady, zawsze można napisać funkcję która przydzieli odpowiedni fragment pamięci sprintf'nie do niej int'a po czym tą pamięć zwróci. Ale życzę powodzenie przy odszukiwaniu wycieków pamięci.

0

@_13th_Dragon w sposób w który napisał się nie da, choćby z takiego powodu, że wrzuca inty, a oczekuje stringów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1