use*_*607 4 c++ malloc macos posix
我正在尝试在mac上编译工具包.它引用了malloc.h的memalign函数,但我能找到的唯一关闭函数是posix_memalign.所以我试图将posix_memalign包装成看起来像memalign.
我对如何做到这一点感到有点困惑(因为void*和void**指针):
posix_memalign的签名是
int posix_memalign(void **memptr, size_t alignment, size_t size);
Run Code Online (Sandbox Code Playgroud)
而memalign的签名是:
void *memalign(size_t blocksize, size_t bytes);
Run Code Online (Sandbox Code Playgroud)
任何指针都非常赞赏.(拉扯双关语意外!:)
谢谢
就像是:
void *memalign(size_t blocksize, size_t bytes) {
void *result=0;
posix_memalign(&result, blocksize, bytes);
return result;
}
Run Code Online (Sandbox Code Playgroud)
该&result将让你void**打电话posix_memalign用,然后根据memalign可没有你可以返回结果.
需要注意的一点是:这与行为不完全匹配 - memalign返回错误通过errno,但posix_memalign将它们作为一个返回int并且不会触及errno.你应该看到它仍然以某种方式妥善处理错误.
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |