2013-05-16 2 views
1

У меня возникают трудности с инициализацией массивов 2d char. Когда он работает, он дает мне гекса выход. Я ищу что-то вдоль линий сетки.2d Отображение массива Char в сетке

#include <iostream> 


using namespace std; 


main() 
{ 


//char test[5][5] = {'***\0','***\0','***\0','***\0','***\0'}; 
char test[5][5] = {"***\0","***\0","***\0","***\0","***\0"}; 
cout << test << endl; 
cout << char[2][2] << endl; 


cin.get(); 
return 0; 


} 

String array был предложен, но мне нужны определенные адреса массивов для другого массива, привязывающего его к цене.

+0

Вы не можете инициализировать 2d массивы. На самом деле вы пытаетесь инициализировать тест [5] [5] массивом char *. Инициализируйте в циклах, я отправлю код. – ChrisCM

ответ

0
for(int i = 0; i < 5; i++) { 
    for(int j = 0; j < 5; j++) { 
     test[i][j] = '*'; 
    } 
} 

//Alternatively you can go for this 

char test[5][5] = {'*', '*', '*', '*', '*', 
        '*', '*', '*', '*', '*', 
        '*', '*', '*', '*', '*', 
        '*', '*', '*', '*', '*', 
        '*', '*', '*', '*', '*'}; 

Это, очевидно, не даст вам точно то, что вы хотите, это потребует некоторой настройки. Это даст вам два массива символов, все настроены на '*'. Вероятно, лучше использовать std :: vector или std :: array, но это будет функционировать как минимум.

Я рассматриваю второй метод как «опасный», так как он использует тот факт, что в тесте памяти [25] == test [5] [5], но вам должно быть понятно использовать то, что вам больше нравится.

Смежные вопросы