ビットマップ文字列をブラウザーに書き込み、それを画面に出力する関数があります。現在、これは各ピクセルの正しい値を個別に生成し、各ピクセルに対してwrite(int fd, char *Buff, int NumBytes)
関数を 3 回使用することで機能します。
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() 関数を何度も呼び出すと確かに何か費用がかかると考えました。そのため、すべての値を文字配列に格納してから、書き込み関数を 1 回呼び出すというアイデアがありました。
write (soc, image_array, sizeof(image_array));
しかし、巨大な配列 (数十万/数百万の要素) で問題が発生するでしょうか? ヒープに割り当てるだけでこれを解決できますか? 愚かなことをしていないことを確認したかっただけです。