你能告诉我从C中的内存中预留1000位的最佳方法吗? 我正在做一个程序,我需要管理标志(值= 0或= 1)。什么是最有效的方法呢? 我在考虑保留所需的空间并使用蒙版控制标志(位)。 谢谢预留空间C
Q
预留空间C
0
A
回答
3
2
可以使用bool
类型:
#include <stdbool.h> // for bool
#include <stdlib.h> // for malloc
#define N 1000
bool *b = malloc(N * sizeof *b);
// for example to set the 42th element to 1
b[41] = 1;
+1
+1:此解决方案可最大限度地缩短访问时间。尽管如此,不需要使用'malloc()。它可能是一个非堆变量,可能是局部函数或全局变量。 – wallyk
0
像?
struct bitf
{
unsigned char b:1;
};
struct bitf[1000];
如果您不想使用位掩码,则最大尺寸是您计算机上变量的最大尺寸。 Error trying to define a 1,024-bit (128 Byte) Bit Field
或分钟存储器:
#include <stdio.h>
int main(void)
{
struct bitf
{
unsigned char a:1;
unsigned char b:1;
unsigned char c:1;
unsigned char d:1;
unsigned char e:1;
unsigned char f:1;
unsigned char g:1;
unsigned char h:1;
};
struct bitf number[125];
number[100].a = 1;
number[110].h =1;
printf("size: %d a:%d h:%d\n",sizeof(number), number[100].a ==0, number[110].h ==1);
return 0;
}
输出:
size: 125 a:0 h:1
相关问题
- 1. 为空JLabel预留空间
- 2. 元素之间的预留空间
- 3. Windows XP SP3 URL命名空间预留
- 4. 大会NASM写入预留空间
- 5. 导出文本的预留空间Highchart
- 6. 创建结构的载体,预留空间,C++
- 7. 在隐藏div加载时预留空白空间
- 8. 数据库之间的预留空间< li>元素?
- 9. 装配 - 程序期间预留阵列空间?
- 10. codeigniter force_download留空的空间
- 11. 为C++ STL队列预分配空间
- 12. Dreaded无法为对象堆预留足够的空间
- 13. 离子错误 - 无法预留足够的空间2097152KB
- 14. Java:无法为对象堆预留足够的空间
- 15. 为什么浏览器预留这个空间?
- 16. 如何为类对象预留向量空间?
- 17. 如何在MS SQL脚本中预留磁盘空间?
- 18. 鼠标之前的伪元素预留空间
- 19. 在Windows XP上配置命名空间预留64位
- 20. 以编程方式检查Http命名空间预留
- 21. IE预留了框架中滚动条的空间
- 22. Intellij偶尔无法为对象堆预留足够的空间
- 23. JDeveloper无法为对象堆预留足够的空间
- 24. Swing - 无法为对象堆预留足够的空间
- 25. 64位JVM无法为对象堆预留足够的空间
- 26. ActiveMQ - 如何预留一些队列的存储空间?
- 27. JDeveloper:无法为对象堆预留足够的空间
- 28. Tomcat问题 - 无法预留足够的空间
- 29. Android布局 - 右对齐,没有包装和预留空间
- 30. 硬盘上的预留空间用于应用程序
哪一个更重要:最小化的空间这占用量,或尽量减少它需要访问一个个体时间值? – robert
如果切换标志将是一个瓶颈,我会感到惊讶。通常是标志对应的过程? – Mikhail