分配的字節數:如何找到我有下面的代碼通過的malloc
int size = 0;
void* ptr;
ptr = malloc(9); //we want to allocate 9 bytes
size = sizeof(*ptr);
printf("size = %d\n", size);
這導致大小等於1
。有沒有辦法讓大小爲9
?
分配的字節數:如何找到我有下面的代碼通過的malloc
int size = 0;
void* ptr;
ptr = malloc(9); //we want to allocate 9 bytes
size = sizeof(*ptr);
printf("size = %d\n", size);
這導致大小等於1
。有沒有辦法讓大小爲9
?
不可以。如果您想記住malloc分配的內存大小,則應將其存儲在其他位置。
你也可以使用一個數組,然後sizeof
會給你一個合適的結果......但是如果你使用void *
類型,它將無法工作。
有沒有辦法將尺寸設置爲9?
有沒有便攜的方式來找到。
但是,如果您使用的是GNU系統(Glibc),則可以使用malloc_usable_size(3)
。
注意:malloc_usable_size
返回的尺寸可能大於給定的尺寸malloc
。
有沒有便攜的方式來找到。 –
我在一次採訪中被一家相當大的公司問了一會兒:1)如何爲X字節分配內存? 2)假設你擁有的只是一個指向分配內存的指針,你如何知道分配了多少空間?那麼這是一個詭計問題嗎? – fifamaniac04
我不確定,這是可能的。 –