Deutsch English Français Italiano |
<vr1e67$1fa1p$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Thiago Adams <thiago.adams@gmail.com> Newsgroups: comp.lang.c Subject: What is your opinion about init_malloc? Date: Fri, 14 Mar 2025 11:24:07 -0300 Organization: A noiseless patient Spider Lines: 35 Message-ID: <vr1e67$1fa1p$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Fri, 14 Mar 2025 15:24:08 +0100 (CET) Injection-Info: dont-email.me; posting-host="6e7cb05722eb03f15f05f89a469e6ccf"; logging-data="1550393"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19BsIR3M6EVd4tNi3DYxLmyWlyguEs+338=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:rVtmhJja11AsVMdjkzap/Ft6J8Y= Content-Language: en-GB Bytes: 1622 What is your opinion about init_malloc? One problem it solves it to initialise a const objects on heap. #include <stdlib.h> #include <string.h> #include <stdio.h> void * init_malloc(size_t size, void * src) { void * p = malloc(size); if (p) { memcpy(p, src, size ); } return p; } #define ALLOC(OBJ) ((typeof(OBJ)*) init_malloc(sizeof(OBJ), &(OBJ))) ////////// SAMPLE ////////// struct Mail { const int id; }; int main () { struct Mail* p0 = ALLOC((struct Mail){.id= 1}); struct Mail* p1 = init_malloc(sizeof *p1, &(struct Mail){.id= 1}); auto p2 = ALLOC((struct Mail){.id= 1}); } (I also posted on reddit)