Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Bohes
4 / 3 / 3
Регистрация: 10.07.2011
Сообщений: 338
Записей в блоге: 1
#1

Как объявить указатель на массив через typedef и как инициализировать такой тип - C++

08.07.2014, 16:43. Просмотров 956. Ответов 4
Метки нет (Все метки)

Как заставить заработать этот фрагмент кода? INT_L -- указатель на массив из 100 элементов типа char; Не получается в переменную C нормально инициализировать, g++ все время ругается на разные типы.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
typedef char (*INT_L) [100];
INT_L  sum (INT_L A, INT_L B)
{
    INT_L C = new char[100];
    for (int i = 0; i < 100; ++i) {
        *C[i] = (char)((*A[i]+*B[i])%10);
        *C[i+1] += (char)((A[i] + B[i])/10);
    }
    return C;
}

http://www.cyberforum.ru/cpp-beginners/thread1454936.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 16:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как объявить указатель на массив через typedef и как инициализировать такой тип (C++):

Как инициализировать такой массив
Нужно в проге(консольное приложение Win32) испоьзовать массив таких размеров...

Как объявить указатель на массив?
Читаю книгу С.Прата, наткнулся на это: short (*pas) = &amp;tell; // pas указывает...

Как узнать тип, переданный через указатель на void?
есть функция, принимает LPVOID, нужно узнать как тип переменной был передан, и...

как инициализировать указатель на структуру
Помогите розобратся, если можно с краткими примерами... __ как...

Как объявить 10 значную переменную такой как 9876543210
Какой тип переменной используется для объявления 10 значной переменной такой...

4
DrOffset
7517 / 4513 / 1097
Регистрация: 30.01.2014
Сообщений: 7,362
08.07.2014, 16:57 #2
Bohes2013, new char[100] возвращает char *, а не char (*) [100]. используй char *.
0
Bohes
4 / 3 / 3
Регистрация: 10.07.2011
Сообщений: 338
Записей в блоге: 1
08.07.2014, 23:30  [ТС] #3
Цитата Сообщение от DrOffset Посмотреть сообщение
используй char *.
Можно поподробнее? У меня как раз с возникли сложности именно в этом.
0
mishelle92
67 / 66 / 36
Регистрация: 09.10.2012
Сообщений: 214
Завершенные тесты: 1
08.07.2014, 23:38 #4
Лучший ответ Сообщение было отмечено как решение

Решение

Может поменять
C++
1
typedef char (*INT_L) [100];
на
C++
1
typedef char *INT_L;
А зачем вы пишете *C[i], *A[i], *B[i]?
0
Bohes
4 / 3 / 3
Регистрация: 10.07.2011
Сообщений: 338
Записей в блоге: 1
08.07.2014, 23:56  [ТС] #5
Цитата Сообщение от mishelle92 Посмотреть сообщение
А зачем вы пишете *C[i], *A[i], *B[i]?
Код претерпел очень много изменений, ошибка была в 4-й стоке, так что строки, расположенные ниже, я не успел еще поменять.
0
08.07.2014, 23:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 23:56
Привет! Вот еще темы с решениями:

Указатель на шаблон класса через typedef
Здравствуйте. Возникла следующая проблема: захотел определить указатель на...

Как инициализировать указатель произвольным адресом?
Как инициализировать указатель произвольным адресом? int *ptr; ptr = ? ;...

Как объявить такой union?
12 именованных структур, например, RECT, и массив из 12-ти элементов того же...

Объявить массив? Запросто! Объявить массив массивов? А как это?
Доброго времени суток! Конечно, все знают, как объявить массив! int main...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru