草庐IT

png_malloc

全部标签

c++ - 为什么替换 malloc() 需要链接器的知识,而::operator new() 不需要?

查看链接的问题。Differencebetweenglobaloperatornewandmalloc接受的答案指出,“替换malloc会引发大量蠕虫。它可以做到,但不可移植,因为它需要链接器的知识。”为什么替换malloc需要链接器的知识,为什么替换::operatornew()不需要? 最佳答案 标准C++对覆盖::operatornew做出了规定。虽然实现肯定是困惑的并且与链接器相关,但C++程序可以只定义一个不同的::operatornew并且它可以工作。C++标准明确表示:程序可以用自己的定义替换这些(等等各种限制和细节)

c++ - 为什么 malloc 在全局命名空间中?

据我了解,C库的C++版本喜欢stdlib.h的原因之一(cstdlib)被引入是为了不污染全局命名空间。但事实证明我可以使用malloc在全局命名空间中,即使我没有#include.那我为什么要#include然后使用std::malloc?(我使用的是g++4.8.2版) 最佳答案 过去曾要求C头文件(*.h)只将名称放入全局命名空间,而相应的C++头文件只将名称放入std。.结果证明这是不切实际的,而且通常没有人遵循。因此,标准委员会标准化了现有的做法,并更改了规则,以便C头文件必须将名称放入全局命名空间并且可以将它们放入st

c++ - 重新定义 malloc/free with static linking has multiple definition error

我公司最近想把编译器从gcc-3.4更新到gcc-4.5。但是,我们客户的机器可能没有最新的libstdc++.so,所以我们想静态链接我们的二进制文件。我们的程序需要定制的malloc()/free()以满足非常高的性能要求。我修改了makefile,在链接时添加了一个-static,得到了以下错误信息:/usr/lib64/libc.a(malloc.o)(.text+0x18c0):Infunction`free'::multipledefinitionof`free'../../ic/src/memmgr/libmemmgr_mt_thread.a(memmgr_mt_thre

c++ - 关于 malloc 和 new 在各自处理内存分配的机制方面的区别?

这个问题在这里已经有了答案:Whatisthedifferencebetweennew/deleteandmalloc/free?(15个答案)关闭7年前。malloc和new在处理内存分配的机制方面有什么区别?

c++ - 使用 C++、libpng 和 OpenMP 并行创建 PNG 文件

我目前正尝试在基于libpng的C++中实现一个PNG编码器,它使用OpenMP来加速压缩过程。该工具已经能够从各种图像格式生成PNG文件。我将完整的源代码上传到pastebin.com,这样你就可以看到我到目前为止做了什么:http://pastebin.com/8wiFzcgV到目前为止,还不错!现在,我的问题是找到一种方法来并行生成包含压缩图像数据的IDATblock。通常,libpng函数png_write_row在for循环中被调用,它带有指向包含有关PNG文件的所有信息的结构的指针和带有单个图像行的像素数据的行指针。(Pastebin文件中的第114-117行)//Loop

c++ - 带有 alpha channel 的 OpenCV 2.4 Jpeg 到 PNG

我有一个JPEG和一个mask。我想用三个JPEGchannel创建一个PNG,Alphachannel应该是蒙版。我如何使用OpenCV实现这一目标?问候 最佳答案 std::vectorchannels;cv::split(jpgImage,channels);channels.push_back(mask);cv::MatbgraImage;cv::merge(channels,bgrAImage);splitandmergefunctions的文档 关于c++-带有alphach

c++ - 未找到 libpng "png_set_longjmp_fn"

我正在使用来自ubuntu的libpng,当我尝试编译一个c++文件时,我得到了对`png_set_longjmp_fn'的undefinedreference我使用的是libpng版本1.6.8如果您有兴趣阅读代码,请告诉我,但我认为这与我的错误代码无关。提前谢谢你。 最佳答案 也许您是使用libpng-1.6.8构建的,但正在链接到较早版本的libpng。libpng-1.4.x中引入了“png_set_longjmp_fn()”API。Ubuntu13:10当前带有libpng-1.2.49(参见/usr/include/li

c++ - 如何在不使用 malloc 或 new 运算符的情况下分配内存空间?

昨天我friend面试的时候,被问到一个问题:实现一个不使用*alloc或new运算符分配内存空间的函数,该函数应返回指向该地址的指针。他和我都找不到答案。 最佳答案 我认为这个问题与其说是一个显示编程经验的问题,不如说是一个谜题。我的解决方案是分配一个全局字节数组,用来代替堆:charheap[MAX_ALLOWED_MEM];/*Thefollowingfunctionuses'heap'asrawmemory!void*like_malloc(size_tbytes);...*/

c++ - 使用 FFmpeg 将原始 RGB32 文件转换为 JPEG 或 PNG

上下文我使用C++程序将原始字节写入RGB32格式的文件(image.raw):RGBARGBARGBA...我希望能够以某种方式查看它。我有图像的尺寸。我的工具仅限于命令行命令(例如ffmpeg)。我访问了ffmpegwebsite有关说明,但它更多地涉及将视频转换为图像。问题是否可以使用ffmpeg将此文件转换为可查看的文件类型(例如.jpeg、.png)。如果可以,我该怎么做?如果不可行,我可以使用其他命令吗?这仍然不可行,有什么方法可以在C++程序中操作RGB32字节,使其更适合而不使用外部库?我也不想像this那样自己编码.jpeg. 最佳答案

c++ - 如何从 openGL 屏幕写入 PNG 文件?

所以我有这个脚本,它将显示数据读入字符数组pixels:typedefunsignedcharuchar;//wewillstoretheimagedatahereuchar*pixels;//thethingyweusetowritefilesFILE*shot;//wegetthewidth/heightofthescreenintothisarrayintscreenStats[4];//getthewidth/heightofthewindowglGetIntegerv(GL_VIEWPORT,screenStats);//generateanarraylargeenought