Récupère le résultat de la ligne MySQL dans un tableau dynamic

Quand récupérer une information de ma firebase database fetch_row(result) je veux sélectionner parmi ces résultats et les stocker dans une row[i] tableau dynamic row[i] sera l’info nécessaire

Je vais avoir besoin de le stocker pour tagid[sortinggger]

mais char * peut être stocké dans char

donc ce que je maintenant est tagid[sortinggger] = *row[i];

mais quand je vérifie les résultats … c’est pas ce que je veux, le numéro 358713020035990 doit être en tagid …

 row[i] 0x05df2090 "358713020035990" char * tagid[i] -112 '' char 

Comment puis-je obtenir ce droit?

 char *tagid;int sortinggger; tagid = (char *) malloc(sizeof(char)); result = mysql_store_result(conn); // only one column of integers num_rows = mysql_num_rows(result); while (row = mysql_fetch_row(result)) {tagid[sortinggger] = *row[i];} 

Si vous essayez de copier un tampon de données de chaîne, et pas seulement le pointeur sur ce tampon, vous devrez utiliser une opération de copie en mémoire ou de préférence une fonction de bibliothèque standard strcpy à des fins telles que strcpy ou strncpy . Donc, en supposant que tagid[sortinggger] fait référence à un bloc de mémoire qui est un tableau de type char , vous pouvez procéder comme suit:

 #include  //tagid is a two-dimensional array of chars of ROWSIZE x COLUMNSIZE char** tagid; tagid = malloc(sizeof(char*) * COLUMNSIZE); for (int i=0; i < COLUMNSIZE; i++) { tagid[i] = malloc(sizeof(char) * ROWSIZE); } //copy some data into your array at row index "trigger" int trigger = SOMEVALUE; strncpy(tagid[trigger], row[i], ROWSIZE); //free the memory you've allocated for your two dimensional array for (int i=0; i < COLUMNSIZE; i++) { free(tagid[i]); } free(tagid); 

La valeur de ROWSIZE devra être suffisamment grande pour contenir votre plus grande chaîne plus un NULL strncpy , sinon la copie sera tronquée à l'aide de strncpy ou les données déborderont des limites du tableau et strncpy quelque chose que vous ne voudriez pas si vous utilisez strcpy .