【发布时间】:2015-03-05 16:12:25
【问题描述】:
我有这两个定义:
uint8_t *idx[0x100];
uint8_t raw[0x1000];
除了遍历idx 的每个元素以将它们全部指向raw[0] 之外,还有其他方法吗?
for (i=0; i<sizeof(raw); i++)
idx[i] = &raw[0];
肯定有比 ↑ 更快的方法。是否有与 memset 等效的指针?
【问题讨论】:
-
没有别的办法。
-
此外,您会以这种方式超出缓冲区 -
sizeof()为您提供数组的 bytes 大小,而不是数组计数。你想要for ( i = 0; i < sizeof(idx) / sizeof(idx[0]); i++)(还要注意它是sizeof(idx),而不是sizeof(raw); -
如果静态分配
raw,可以在编译时进行初始化。
标签: c performance pointers memory