Выдает ли использование sizeof неправильный размер для указателей структуры?
Используя valgrind для чтения, я получаю: Неверная запись / чтение размером 4
struct Person{
char* name;
int age;
};
struct Person* create_person(char *name, int age)
{
struct Person* me = (struct Person*)malloc(sizeof(struct Person*));
assert(me!= NULL); //make sure that the statement is not null
me->name = name;
me->age = age;
return me;
}
Используя это получил чистый лог с valgrind
struct Person{
char* name;
int age;
};
struct Person* create_person(char *name, int age)
{
struct Person* me = (struct Person*)malloc(sizeof(struct Person*)+4);
assert(me!= NULL); //make sure that the statement is not null
me->name = name;
me->age = age;
return me;
}
Почему я должен явно указатьsizeof(struct+intSize)
чтобы избежать этой ошибки?sizeof
не получить весь размер структуры?