30/09/2018, 18:41

Tìm Kích Thước Của Biến Con Trỏ Struct

struct S_Record
    {
        char *name_pointer;     // 4 byte
        char all[13];                 // 13 byte
        int foo;                        // 4 byte
    };
    struct S_Record *pRecord = createRecord(...);

Mục đích là em muốn tìm kích thước vùng nhớ (memory in bytes) mà thằng pRecord nó trỏ đến, có cách nào tìm nó không ạ. E giả sử cái hàm createRecord() nó return (struct S_Record*)malloc(sizeof(struct S_Record) * 10);

Văn Dương viết 20:51 ngày 30/09/2018

Đoán bừa : vùng nhớ dài 21 byte hoặc 25 byte hoặc 29 byte. Bao gồm :
name_pointer : 4 hoặc 8byte (32 hoặc 64 bit OS).
all : 13 byte.
foo : 4 hoặc 8 byte ( 32 hoặc 64 bit OS).

viết 20:42 ngày 30/09/2018

4 + 13 + 3 + 4

keyword để gu gồ là data alignment

lahata viết 20:46 ngày 30/09/2018

Thanks all,
Theo Tri’ thi voi OS 32 bit: 4 + 13 + 3 + 4 minh nghi la ket qua dung.

Bài liên quan
0