Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
1

Работа с указателем на массив в функции (!!!)

18.04.2010, 22:54. Показов 1681. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я написал программу по сортировке строк из файла, который на жёстком, прога отлично работает, может показаться абсурдом, но я не понял вот в этом куске (функция по обраюотке)-base-содержит в себе все строки файла с жёсткого:

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
void strochka(char** base, int e)       //Функция сортировки строк
{
    char* min;
    char* temp;
    int s;
    
 
    for (int j = 0; j<e; j++)       // Берёт с первой строки по последнюю и  сравнивает её с остальными в массиве
    {
        min = base[j];
        for (int i = j + 1; i<e; i++)  // со второго элемента до конца файла
        {    
 
            if ((strcmp(min,base[i]))==1)  //Сравнение строк  (Если min>base[i])
 
            {                
                min = base [i];  //записываем в min, если найдётся строка меньше чем первая (ASCII) 
                s=i;            //индекс минимального элемента
            }
        }
 
        if ((strcmp(min,base[j]))==-1)   // Если min<base[j], то выполнит
        {
            temp=base[j];                //записываем в temp значение, хранимое в base[j]
            base[j]=base[s];            //записываем в base[j] значение, хранимое в base[s]
            base[s] = temp;            //записываем в base[s] значение, сохранённое в temp
        }
 
    }
 
    for (int k=0;k<=(e-1);k++)
    {
 
        printf ("Элемент %d >> %s",k+1,base[k]);
 
    }
}



Вот тут :

temp=base[j]; //записываем в temp значение, хранимое в base[j]
base[j]=base[s]; //записываем в base[j] значение, хранимое в base[s]
base[s] = temp; //записываем в base[s] значение, сохранённое в temp


Я работаю с массивом и перезаписываю значения в ячейках массива или в квадратных скобках я указываю с какой областью памяти работать?
Другими словами я работаю с указателем или с массивами?
Если у кого-то есть чёткая информация про указатели и про работу указателя на указатель, пожалуйста напишите ресурс, какая-то каша в голове...(

Спасибо Огромное за помощь! Она так нужна...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2010, 22:54
Ответы с готовыми решениями:

Работа с указателем в функции
Доброго времени! Есть код вида: char far * pBuf; func(&amp;pBuf);

Работа с указателем из main в функции
Всем доброе утро.) Делал задание по односвязным спискам и столкнулся с проблемкой. Передаю конец...

Работа с указателем на двумерный массив
Добрый день. Изучая тему указатели, столкнулся с проблемой - никак не могу понять как работать с...

Массив в функции со static указателем на него
Здрасти, делаю задание на указатели из книги Хортона по Вижуал С++. Задачка: передать в функцию...

3
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
18.04.2010, 23:19 2
в с++ указатели и массивы тесно связаны друг с другом. Имя массивабез индекса- это указатель на его первый элемент.
Следующие два выражение абсолютно идентичны:
C++
1
2
p
&p[0]
(Герберт Шилдт Полный справочник по с++)

если имя массива без индекса - указатель на первый его элемент, то mas[i] - указатель на i-ый элемент.
По сути ты работаеш с указателями
0
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
18.04.2010, 23:42  [ТС] 3
Цитата Сообщение от PointsEqual Посмотреть сообщение
в с++ указатели и массивы тесно связаны друг с другом. Имя массивабез индекса- это указатель на его первый элемент.
Следующие два выражение абсолютно идентичны:
C++
1
2
p
&p[0]
(Герберт Шилдт Полный справочник по с++)

если имя массива без индекса - указатель на первый его элемент, то mas[i] - указатель на i-ый элемент.
По сути ты работаеш с указателями
Да, указатели и массивы тесно связаны между собой...это точно...

Впринципе у меня в выделенном жирным куске- просто происходит изменение указателя?
0
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
18.04.2010, 23:51 4
...да
0
18.04.2010, 23:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2010, 23:51
Помогаю со студенческими работами здесь

Работа с указателем
Есть такой указатель: char *s=&quot;n1=1&amp;n2=2&amp;name=test&amp;sername=test2&quot;; Нужно выделить с этой стоки...

Работа с указателем
#include &lt;ntddk.h&gt; NTSTATUS PsLookupProcessByProcessId(__in HANDLE ProcessId, __out ...

Работа с указателем.
Доброе время суток. При чтении из файла вроде все нормально, но когда я пытаюсь вручную установить...

Работа с указателем на структуру
Здравствуйте. Во время выполнения нижеуказанного кода Visual выдаёт окно с ошибкой. Скорее всего,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru