我有一个函数将位图字符串写入浏览器,然后将其打印在屏幕上。目前,这是通过单独为每个像素生成正确的值并为每个像素使用该write(int fd, char *Buff, int NumBytes)
函数三次来实现的,例如:
for (i = 0; i < IMAGE_HEIGHT; ++i)
{
for (j = 0; j < IMAGE_WIDTH; ++j)
{
blue = blue();
green = green();
red = red();
write(soc, &blue, 1);
write(soc, &green, 1);
write(soc, &red, 1);
}
}
我想优化代码,并认为多次调用 write() 函数肯定会让我付出一些代价。因此,想法是将所有值存储在一个字符数组中,然后调用一次 write 函数:
write (soc, image_array, sizeof(image_array));
但是我会对巨大的数组(数千/数百万个元素)有问题吗?分配给堆会解决这个问题吗?我只是想确保我没有做任何愚蠢的事情。