salut à tous,
alors ouala
g besoin de stocker dans une structure une autre structure de nature inconnue au moment de la programmation
donc je me suis dit : no problemo, c une affaire pour le pointeur magique void* !!!
manque de pot ca ne marche pas
voila le code qui marche :
#include <stdlib.h>
typedef struct structurePtr PtrStruct;
typedef struct structurePtr{
int valeur;
char *nom;
char *toto;
}structure;
int main(void){
PtrStruct *obj= 0x0;
if((obj = (PtrStruct*)calloc(1, sizeof(structure))) != 0x0){
obj->valeur = 1;
obj->nom = (char*)calloc(sizeof("name" ) + 1, sizeof(char));
sprintf(obj->nom, "%s", "name" );
obj->toto = (char*)calloc(1, sizeof(int));
sprintf(obj->toto, "%d", 2);
printf("%d %s %d\n", obj->valeur, obj->nom, (int)(*(obj->toto)));
}else{printf("%s\n", "echec allocation" );}
return 0;
}
c'est la ruse que j'ai trouvé pour que ca marche... (ca compile et s'exécute sans pb, et gdb ne trouve rien à redire)...
mais ca ne marche pas puisque j'aobtient ca l'exécution :
1 name 50
g 50 au lieu de 2, donc y a un pb de poiteur ... et la je capte pas...
si j'utilise un pointeur void* pour toto que je caste, je génère carément une erreur comme quoi la valeur void n' pas été ingnorée comme elle aurait du avec ecec de la compilation...
si qqu'un a une soluce... moi tout petit
et moi tres content
merci et a plus pour de nouvelles aventures...
dire que j'ai su faire ca y a trois quatre ans... la honte...