Allora ho un codice, che deve stampare una griglia, ad esempio se io imposto come costanti che ci devono essere 16 celle e che il lato deve essere 4 celle, il programma dovrebbe stamparmi:
codice:
O O O O
O O O O
O O O O
O O O O
Semplice no? Il mio codice è questo:
codice:
#define N_CELLE 16
#define LATO 4
#define NONOTA 'O'

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>

void init(char *array);
void print(char *array);

int main()
{
    char array[N_CELLE];
    init(array);
    write(STDOUT_FILENO, "\n", 1);
    print(array);
    write(STDOUT_FILENO, "\n", 1);
}

void init(char *array)
{
    int i, k;
    for (i = 0; i < N_CELLE; i++)
    {
        array[i] = NONOTA;
    }
}

void print(char *array)
{
    int i,
        k = 0;
        
    for (i = 0; i < N_CELLE; i++)
    {
        if (k < LATO)
        {
            write(STDOUT_FILENO, &array[i], 1);
            k++;
        } 
        else
        {
            write(STDOUT_FILENO, "\n", 1);
            k = 0;
        }
    }
}
Sembra corretto, ma tutto quello che stampa è:
codice:
O O O O
O O O O
O O O O
O
Io sto programmando da stamattina ora sono esausto e non so più come risolvere questo nuovo problema, voi vedete l'errore???

PS: Il codice è completo e compilabile se volete provarlo!