Could anyone give me some advice? I recently use mem_alloc() to allocate a 
structure memory which have a int64 member. However, mem_alloc() returns a 
memory poniter which is 4 byte aligned which cause a memory unaligned fault. 
The code is as follows, ifp=mem_alloc(sizeof(structure interface)); The 
structure intrface has a member flags which is int64. The size of structure 
interface is 112 which is a multiple of 8 while the address returned is 
0x720ef324 which is not 8 byte aligned. So when I want to access ifp->flags, an 
unaligned fault will be triggered. Could any give some hint? Thanks! Best 
regards, yan On 05/25/2019 22:19, yanhc519 wrote: Hi all. What is the memory 
alignment of the pointer returned by mem_alloc() in mem.c? Since the only 
argument of mem_alloc() is size, so what alignment will mem_alloc() choose? In 
http://man7.org/linux/man-pages/man3/malloc.3.html, it says "The malloc() and 
calloc() functions return a pointer to the allocated memory, which is suitably 
aligned for any built-in type." Since the largest type is double or int64 which 
are 8 bytes, so I guess malloc() in linux will choose alignment of 8 bytes. Is 
this guess also applied to mem_alloc() in LwIP?  That is, does mem_alloc() in 
LwIP also choose alignment of 8 bytes? Thanks! Best regard, yan
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to