Xlib has a function called XAllocSizeHints to allocate a XSizeHints structure on the heap and set it to zero.

XSizeHints *sizehints;
sizehints=XAllocSizeHints();

However, is it necessary to always use this function? Or can I do this:

XSizeHints sizehints;
memset(&sizehints, 0, sizeof(XSizeHints));

I would like to know if it is possible to avoid XAllocWMHints and XAllocClassHint too.

有帮助吗?

解决方案

It's fine to stack allocate these (as long as you don't keep them around after the current function returns of course). There's no magic in those alloc functions. In fact most code probably does allocate them on the stack.

其他提示

It's actually better to use memset way, because if you call XAllocSizeHints() then you need to explicitly free memory with XFree().

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top