Ho il codice qui sotto:Dereferenziare un puntatore nullo
#include <inttypes.h>
#include <stdlib.h>
struct a
{
void *p;
};
int main(void)
{
struct a *ptr = malloc(sizeof(struct a));
ptr->p = malloc(sizeof(uint8_t));
*((uint8_t *) ptr->p) = 2;
return 0;
}
sto getto del puntatore vuoto prima di dereferencing per evitare l'avvertimento
avvertimento: dereferenziazione '* vuoto' puntatore
Sto rompendo qualsiasi regola facendo questo o questo codice è buono?
Quali sospetti avete delle regole che potrebbero essere violate? –
Se non c'è una ragione specifica per cui il tipo di 'p' non è solo' uint8_t * ', questo è un codice terribile. – Staven
@MattMcNabb lancia il lvalue modificabile? Volevo solo confermare una volta che questo è buono o no? – Gopi