Форум программистов, компьютерный форум CyberForum.ru

Двумерный массив - C++

Восстановить пароль Регистрация
 
RussDragon
 Аватар для RussDragon
12 / 12 / 1
Регистрация: 08.04.2012
Сообщений: 81
14.04.2013, 21:21     Двумерный массив #1
Набросал часть кода за 15 минут.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 
char* fillarr(char ** str, int len);
 
 
void paintfield()
{
    int count, count2;
    char field[10][10];
for (count = 0; count < 10; count++)
{
    
    
    for (count2 = 0; count2 < 10; count2++)
    {
        std::cout << field[count][count2] << " ";}
    
        std::cout << std::endl;
    
}
    }
 
 
char* fillarr(char * str, int len)
{
    
    for(int i = 0; i < len; i++)
    {
        
        for (int c = 0; c < len; c++)
            str[i][c] = ".";
        
    }
    
    
    return str;
}
Честно говоря, я не понимаю, где ошибка в функции fillarr.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 21:21     Двумерный массив
Посмотрите здесь:

Одномерный массив и Двумерный массив C++
Двумерный массив C++
Двумерный массив C++
Двумерный массив C++
Двумерный массив.упорядочить массив по убыванию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ласковая Киса
 Аватар для Ласковая Киса
82 / 8 / 1
Регистрация: 11.01.2013
Сообщений: 55
14.04.2013, 21:46     Двумерный массив #2
Цитата Сообщение от RussDragon Посмотреть сообщение
Набросал часть кода за 15 минут.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 
char* fillarr(char ** str, int len);
 
 
void paintfield()
{
    int count, count2;
    char field[10][10];
for (count = 0; count < 10; count++)
{
    
    
    for (count2 = 0; count2 < 10; count2++)
    {
        std::cout << field[count][count2] << " ";}
    
        std::cout << std::endl;
    
}
    }
 
 
char* fillarr(char * str, int len)
{
    
    for(int i = 0; i < len; i++)
    {
        
        for (int c = 0; c < len; c++)
            str[i][c] = ".";
        
    }
    
    
    return str;
}
Честно говоря, я не понимаю, где ошибка в функции fillarr.
Если Вы хотите возвращать функцией fillarr двумерный массив, тогда нужно после char поставить вторую звёздочку.
C++
1
char** fillarr(char ** str, int len)
Еще в этой строке
C++
1
str[i][c] = ".";
Вы присваиваете ячейке массива char-ов строку. Правильнее будет написать
C++
1
str[i][c] = '.';
RussDragon
 Аватар для RussDragon
12 / 12 / 1
Регистрация: 08.04.2012
Сообщений: 81
14.04.2013, 22:03  [ТС]     Двумерный массив #3
Точно! Спасибо! Про кавычки я совсем забыл.

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
char* fillarr(char ** str, int len);
 
 
void paintfield()
{
    int count, count2;
    char field[10][10];
    fillarr(field, 10 );
for (count = 0; count < 10; count++)
{
    
    
    for (count2 = 0; count2 < 10; count2++)
    {
        std::cout << field[count][count2] << " ";}
    
        std::cout << std::endl;
    
}
    }
 
 
char* fillarr(char ** str, int len)
{
    
    for(int i = 0; i < len; i++)
    {
        
        for (int c = 0; c < len; c++)
            str[i][c] = '.';
        
    }
    
    
    return *str;
}
Теперь painfield пишет, что нету вызываемой функции с именем fillarr
Ласковая Киса
 Аватар для Ласковая Киса
82 / 8 / 1
Регистрация: 11.01.2013
Сообщений: 55
14.04.2013, 22:27     Двумерный массив #4
У меня нормально всё работает
Только вот у Вас char [10][10] не преобразует в char **
Если хотите создать динамический двумерный массив,то скорее так:
C++
1
2
3
4
    char**field;
    field=new char*[10];
    for(int a=0;a!=10;a++)
        field[a]=new char[10];
Yandex
Объявления
14.04.2013, 22:27     Двумерный массив
Ответ Создать тему
Опции темы

Текущее время: 13:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru