Je suis en train de faire quelque chose comme ce qui suit dans C:Segfault - mais le pointeur est NULL
void *initialize()
{
my_type *ret = malloc(sizeof(my_type));
return (void*)ret;
}
void test()
{
my_type* ret = (mytype*)initialize();
my_type x = *ret;
}
Il se bloque sur le déréférencement avec:
Received signal 11 (Segmentation fault: 11)
Le pointeur est non nul: J'ai essayé d'imprimer le pointeur, et j'ai eu une valeur.
J'ai aussi essayé de faire un nouveau droit de my_type dans la fonction de test, comme ceci:
my_type* new = malloc(sizeof(my_type));
Lorsque j'imprime les représentations entières de nouvelles et ret, ils sont des entiers très proches les uns des autres. Donc, ces choses devraient être à proximité dans la mémoire.
'printf' a besoin d'un spécificateur de format Quel est le type de 'mytype-> field'? –
Quelle est la valeur de 'mytype-> field'? – Barmar
Quel est le type de 'field' – MOHAMED