Tag: 设置

如何修复关于Mandelbrot集的Pthreads代码?

我有以下关于计算和创建Mandelbrot集图片的Pthreads代码。 我在C中的代码工作正常,它很好地打印出结果图片。 关键是使用下面的代码,我能够编译代码并执行它。 之后,如果我尝试在Gimp中查看生成的.ppm文件,则无法打开它。 我想我在代码中做错了。 如果有人可以帮助我,我会很高兴。 // mandpthread.c // to compile: gcc mandpthread.c -o mandpthread -lm -lrt -lpthread // usage: ./mandpthread > output.ppm #include #include #include #include #include #include typedef struct { int r, g, b; } rgb; int NITERATIONS, NTHREADS; rgb **m; void color(rgb **m, int x, int y, int red, int green, int […]

找出指针是否是C中集合的一部分的最快方法是什么?

给定一个结构上的指针 ,我需要很快找到它是否是一个集合的一部分(我必须自己定义/实现)。 我可能会考虑像Bloom Filter这样的技术,但实际上并不知道如何在指针上执行此操作。 该解决方案需要在32位和64位机器上运行。 编辑:所有这些指针(其中2k-5k)指向各种随机存储器地址,因为它们的目标是我无法控制的双向链表的元素。 这可以改为:“通过创建另一个结构,如何在元素中找到只读 双向链表的一部分?” 编辑2:双向链表可能随时间增长,但不是我控制的集合。

如何在C中取消设置变量以允许稍后使用具有不同数据类型的相同名称?

我想在C程序中使用不同数据类型的相同变量名而不进行强制转换。 我真的想这样做,不要问为什么。 那我该怎么办呢? 如果在进行预防性取消时该变量不存在,我该如何处理错误?

在C中进行重复数据删除的高效最近集合成员测试?

我有无限数量的12字节消息到达。 内容可以被视为随机和无结构的。 (长度很重要,因为它比大多数哈希短。) 我想重复删除它们。 一种方法是将最后1,000条消息存储在循环缓冲区中,并在接受消息之前检查所有1,000条消息以进行匹配(并将其插入循环缓冲区以供将来检查)。 还有哪些其他方法可以提高CPU和内存效率?