I\'m learning C and I decided to make a text game as my learning project. So I\'m trying this primitive \"parser\" that reads a text file into a 2D array, but there\'s
The main problem is that
char *map[ROWS][COLS];
only allocates space for ROWS x COLS char pointers, it does not allocate space for the strings themselves. So you're continually overwriting charbuffer as you've done it with every iteration, which explains why you end up with the same characters repeated over and over when you read out. You need to dynamically allocate the memory you need, along the lines of
for (row = 0; row < ROWS; row++) {
for (col = 0; col < COLS; col++) {
charbuffer = (char*)malloc(sizeof(char) * 3); //****
map[row][col] = fgets(charbuffer, 3, mapfile);
}
}