Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : copie de tableau de char [ Base de données / SQL ] (majong)

mercredi 3 septembre 2008 à 10:31:06 | copie de tableau de char

majong

Bonjour
  je fais une requete mysql, puis dans un row j'ai le résultat, je sais aussi que la longueur de prix > longueur row
  Mon programme ne marche pas :

int requete(char ** prix) {
...
int i=0

...
strncpy(prix[i],row[0],sizeof(prix[i]));
prix[sizeof(prix[i]) - 1] = '\0';
i++;
...

}

...
char** prix= (char **)malloc(12*sizeof(char*));
requete(prix);
...




mercredi 3 septembre 2008 à 14:53:39 | Re : copie de tableau de char

fregolo52

Membre Club
Euh, c'est quoi le problème ?
Ca marche pas c'est un peu vague !!! tu peux expliquer le comportement actuel !

jeudi 4 septembre 2008 à 03:02:21 | Re : copie de tableau de char

SAKingdom

Membre Club
sizeof(prix[i])
Un pointeur pesant 4 octets (en 32 bits), sizeof d'un pointeur égal toujours 4.

char** prix= (char **)malloc(12*sizeof(char*));
Hmm. Je ne sais pas trop ce que tu souhaites faire ici mais si tu veux allouer de la mémoire pour tes pointeurs, on ne procède pas comme ca.
Voir:
http://www.codyx.org/snippet_allocateur-pointeur-pointeurs_293.aspx

C++ (@++)


dimanche 7 septembre 2008 à 09:46:39 | Re : copie de tableau de char

spidermario

prix[sizeof(prix[i]) - 1] = '\0';
alors que prix est un tableau de chaînes de caractères ?

Je ne comprends pas non plus pourquoi sizeof(prix[i]) au lieu de strlen(prix[i]) mais c'est sûrement moi qui n'ai pas exactement compris ce que tu voulais faire...

jeudi 9 octobre 2008 à 16:09:36 | Re : copie de tableau de char

majong

char **malloc2d (unsigned int num, unsigned int size)
{
    char **c, **d, *p;
    if(!(c = (char**)malloc((num*size)+(num*sizeof(char*))))) return 0;
    d = c; p = (char*)(c+num);
    do *d++ = p+(--num*size); while(num);
    return (**c);
}
...

char **prix;
prix = malloc2d(12,4);
while(row = mysql_fetch_row(res)) {
         memcpy(prix[i], row[0],4);
}
Ne compile pas !

jeudi 9 octobre 2008 à 16:13:40 | Re : copie de tableau de char

SAKingdom

Membre Club
Serait interessent de savoir le message d'erreur du compilateur.

C++ (@++)


jeudi 9 octobre 2008 à 16:19:34 | Re : copie de tableau de char

majong

In function 'malloc2d':
warning: return makes pointer from integer without a cast

jeudi 9 octobre 2008 à 16:28:36 | Re : copie de tableau de char

SAKingdom

Membre Club
Réponse acceptée !
Ça c'est une warning, ça n'empêche pas la compilation.

return (**c);

C'est quoi ça ? Tu retournes la valeur pointée par le premier pointeur...
Ne change pas l'implémentation que je t'ai fourni
void **malloc2d (unsigned int num, unsigned int size)
{
    char **c, **d, *p;
    if(!num || !size) return 0; //<- à retirer dans un code sûr
    
    if(!(c = (char**)malloc((num*size)+(num*sizeof(char*))))) return 0;
    d = c; p = (char*)(c+num);
    
    do *d++ = p+(--num*size); while(num);
    // OU
    // do *(d+(--num)) = p+(num*size); while(num);
    
    return (void**)c;
}
char **prix;
prix = (char**)malloc2d(12,4);
while(row = mysql_fetch_row(res)) {
         memcpy(prix[i], row[0],4);
}

Voilà. Devrait passer là.


C++ (@++)




Cette discussion est classé dans : requete, char, prix, row, sizeof


Répondre à ce message

Sujets en rapport avec ce message

debutant en c, probleme pour un programmme de compression [ par araborgne ] voila donc je cherchais un programme permettant de compresser et decompresser un fichier texte, et image.j'en ai trouver un, mais il est ecrit en c++, PROBLEME POINTEURS [ par zeloveur ] char * saisirChaine(){ int i=0; char *chn; chn=(char *)malloc(sizeof(char)); do { chn[i]=getchar(); chn=(char *)realloc(chn,(++i+1)*sizeof(char)); } taille chaine de char [ par langedechu ] Salut , voila mon prob (je sais plus comment faire) :j'ai une variable : const char *buffer; et j aimerais savoir le nombre de caractere stocker dans COLORREF to char* to COLORREF [ par melkiorlenecrarque ] Bonjour, Je voudrais envoyer à une application serveur un COLORREF  via send. J'ai donc besoin de transformer cette variable en char* Avec les exemp Pb de compilation (error C2593: 'operator <<' est ambigu) [ par nanou_26 ] J'obtient une erreur de compilation "error C2593: 'operator T m_va Probleme de lecture de BMP [ par handmousemaster ] Bonjour à tous, j'ai un probleme :je souhaite lire des fichier BMP, je n'ai aucun probleme pour lire les entetes, mais dès que je veux lire les donnée requete mysql en C [ par hotlips ] Bonjour,Petit problème avec une fonction qui effectue une requète mysql. La connection et la requète s'executent sans probleme, mais je voudrais pouvo Passage de requete mysql ! [ par chaya56 ] Bonjour,je tiens a prevenir que cela fait 2 ans que je n'ai plus fait de C++ et a l'epoque j'avais un niveau débutant !Donc ma question : pour un proj les fichiers [ par infodaoudi ] bonjour codeurj'ai la fonction suivantevoid Noeud::insererNF(char *fich,Noeud *ng){        ofstream A(fich,ios::out|ios::app|ios::binary);    if (!A) aide sur la fonction sizeof [ par miki42 ] Bonjour a tous j'ai besoin d'un peu d'aide je debute en C et je ne comprend pa une petite portion de code que j'etudie en ce moment a savoir: [CODE]


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.