Как получить размер структуры неполного типа из указателя на тип структуры в c - PullRequest
0 голосов
/ 04 января 2019

Есть ли способ получить размер структуры из указателя типа структуры (STP) без предварительного объявления структуры с помощью STP?

На этот похожий вопрос не было рабочего ответа на мой вопрос: разыменование указателя на неполный тип - typedef struct

#include <stdlib.h>
#include <stdio.h>

typedef struct S * STP;

struct S {
   uint64_t a;
   uint64_t b;
};


int main() {    
    STP A = (STP)malloc(sizeof(STP));  // allocates poiner size
    printf("Size STP:   %lu\n", sizeof(STP));

    STP B;
    B = (STP)malloc(sizeof(*B));  // allocates expected struct size
    printf("Size B:   %lu\n", sizeof(*B));

    free(A);
    free(B);
}    
...