I'm making ASCII game and I need performance, so decided to go with printf(). But there is a problem, I designed my char array as multidimensional char \*\* array, and printing it outputs garbage of memory instead of data. I know it's possible to print it with a for loop but the performance rapidly drops that way. I need to printf it like a static array[][]. Is there a way?

I did some example of working and notWorking array. I only need printf() to work with nonWorking array.

edit: using Visual Studio 2015 on Win 10, and yeah, I tested performance and cout is much slower than printf (but I don't really know why is this happening)

```
#include <iostream>
#include <cstdio>

int main()
{
    const int X_SIZE = 40;
    const int Y_SIZE = 20;

    char works[Y_SIZE][X_SIZE];
    char ** notWorking;

    notWorking = new char*[Y_SIZE];
    for (int i = 0; i < Y_SIZE; i++) {
        notWorking[i] = new char[X_SIZE];
    }

    for (int i = 0; i < Y_SIZE; i++) {
        for (int j = 0; j < X_SIZE; j++) {
            works[i][j] = '#';
            notWorking[i][j] = '#';
        }
        works[i][X_SIZE-1] = '\n';
        notWorking[i][X_SIZE - 1] = '\n';
    }
    works[Y_SIZE-1][X_SIZE-1] = '\0';
    notWorking[Y_SIZE-1][X_SIZE-1] = '\0';

    printf("%s\n\n", works);
    printf("%s\n\n", notWorking);

    system("PAUSE");
}

```

Note: I think I could make some kind of a buffer or static array for just copying and displaying data, but I wonder if that can be done without it.