【发布时间】:2017-05-10 19:25:44
【问题描述】:
所以我的任务是在 C 中创建曼德尔分形。 我将保持代码简单,因为它非常简单。 问题:
在给定的文件中,每个像素(char[3])单独计算,然后通过write(1, pixeldata, 3)写入stdout
现在:由于这不是很有效,我想首先收集 char 数组中一行的所有像素 char line[width*3]
- 一切正常,除了输出与之前的输出有很大不同(颜色看起来偏移等)
代码如下:
char pixelData[3];
char line[width*3];
for (y=1; y <= height; ++y) {
...
for (x=1; x <= width; ++x) {
... calculate ...
// iterate
for ( .... calculate ...) {
... calculate ....
}
strncat(line, pixelData, 3); // after
// write(1, pixelData, 3); // before: worked
}
write(1, line, sizeof(line)); // after
memset(line, 0, sizeof(line));
}
如果有人能告诉我,我在这里做错了什么,那就太酷了…… 在此先感谢:)
【问题讨论】:
-
使用
memcpy而不是strncpy像素数据之间可能有0 -
听起来像是一个想法,但我使用 strcat/strncat 连接值(行 + newPixelData),我不知道与 memcpy 等效的东西
-
谢谢,使用 memcpy 和指向数组中新索引的指针起作用了
标签: c arrays char mandelbrot