C - 连接字符数组,然后写入与写入单个字符不同的标准输出

C - Concatenate char arrays, then write to stdout different to writing single chars

所以我的任务是在 C 中创建曼德尔分形。 我将保持代码简单,因为它非常多。 问题:

代码如下:

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));

}

如果有人能告诉我,我在这里做错了什么,那就太好了... 提前致谢:)

您不能将字符串函数用于可能包含 0 的 char 数组,也不能用于非以 0 结尾的 char 数组。我相信您代码中的 pixelData 只是三个小整数的数组,而不是可打印的字符串。所以 strncat 帮不了你。另一方面,由于您始终知道您的线路有多长,因此您不需要 strncat 为您算出。