multidimensional array: incompatible type assignment
===

I have declared array of known size, 

    typedef struct{
      ......
      char * buffer[height+1];    //height is a constant int
      ......} args;
    
    int main{
     args * info;
     info = malloc (sizeof(args));
     char* output_buffer[width][height+1];    //width is also a constant int >= 4
     output_buffer[2] = malloc (sizeof(char)*char_per_line*(height+1)); // error same as below
     info->buffer = output_buffer[2];    // I know it's wrong. incompatible types in assignment
    ....}
Numbers are arbitrary and used just for illustration.

What i am doing is to assign the address of `output_buffer[width]` to `info->buffer`, and then pass `info` as an argument to a thread, which generates data an array of size `height+1`; in each slot is a cstring of length `char_per_line`. Those cstrings are stored in `output_buffer[2]`.

I am confused here that isn't the `output_buffer[2]` a pointer of type `char*[height+1]`? Then why can't I assign address of memory from `malloc` to it? 

Also, I know that I cannot assign an array to an array, but how can I get the code work in desired way?

Thanks in advance!