3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
|
|
1 | |
массивы указателей,указатели на массивы26.09.2012, 09:23. Показов 1066. Ответов 8
Метки нет (Все метки)
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось.
допустим есть QStringList a; a.append("мамa"); a.append("мыла"); a.append("раму"); и есть QStringList* b; что будет лежать внутри в каждом из этих случаев 1 случай for (int i=0;i<b.count();i++){ b.append(a[i]); } 2 случай for (int i=0;i<b.count();i++){ b.append(&a[i]); } 3 случай for (int i=0;i<b.count();i++){ b.append(*(a[i])); } два последних, вероятно, совсем не имют смысла, и с каким из них мне потом можно будет сделать так QString s=b[0].mid(0,1); или QString s=*(b[0]).mid(0,1); или это полный бред и можно ещё книжки посоветовать.про указатели на массив,массивы указателей и что с ними делать можно и что при этом получается
0
|
26.09.2012, 09:23 | |
Ответы с готовыми решениями:
8
Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) массивы указателей,указатели на массивы Указатели на массивы: В чем принципиальное различие между объявлениями указателей? С++ Тема «Указатели и динамические массивы. Использование указателей в качестве аргументов функций» |
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
|
26.09.2012, 10:37 | 2 |
Наверное все же a.count(), потому что b.count() здесь не имеет смысла.
Во втором случае ты передаешь внутрь указатель на элемент, но я не уверен, что он его примет адекватно. 3 случай вообще бессмысленный, ведь a[i] - не указатель
1
|
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
|
||||||
26.09.2012, 10:38 | 3 | |||||
Во-первых, у вас ничего лежать, и даже стоять не будет.
Потому что
А где само выделение памяти? Объект-то-то не создам, поэтому мы не можем к нему применять метод count()
0
|
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
|
|
26.09.2012, 10:40 [ТС] | 4 |
0
|
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
|
|
26.09.2012, 10:41 | 5 |
Но если допустить, что память выделена для ячеек, то в первом случае
Вы добавите элементы: "мама", "рыла", "раму" Во-втором адреса "мама", "рыла", "раму", если это возможно И в третьем случае случится адский конец света, потому что вы будете разыменовать разыменованный указатель: типа *(*(a+i)
0
|
74 / 37 / 3
Регистрация: 23.09.2012
Сообщений: 408
|
|
26.09.2012, 10:41 | 6 |
kotleta, забавно. Я пропустил указатель О_о
0
|
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
|
|
26.09.2012, 10:42 [ТС] | 7 |
0
|
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
|
|
26.09.2012, 10:44 | 8 |
Вы не поняли.
kotleta, говорит о том что QStringList* b; это не объект, а указатель на него, то есть его не существует. Есть пустая ссылка на этот тип.
0
|
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
|
|
26.09.2012, 10:54 [ТС] | 9 |
0
|
26.09.2012, 10:54 | |
26.09.2012, 10:54 | |
Помогаю со студенческими работами здесь
9
Структуры, массивы, указатели, динамические массивы структур Создание массивов указателей на массивы указателей Отсортировать массив и вывести на экран (массивы и указатели на указатели) Массивы указателей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |