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

Не могу понять в чем ошибка: реализация односвязного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция, определяющая достижение начала файла: есть ли такая? http://www.cyberforum.ru/cpp-beginners/thread160173.html
Собственно мне нужна функция, проверяющая достижение начала файла, типа feof только наоборот. Гуглил, ничего не нашел =(
C++ Есть исходники браузера? Есть у кого-нибудь исходники браузера? П.С.Администрации сделайте в каждом разделе форума чат, примерно для таких вопросов. Добавлено через 6 минут П.С. Исходники нужны на чистом Си http://www.cyberforum.ru/cpp-beginners/thread160161.html
Вычислить произведение ряда C++
Господа,нужна помощь. Кому не лень,не трудно,помогите чем могите. Собственно вот: Блок А 1. В области 12 районов. Известны количество жителей каждого района ( в тысячах человек) и плотность населения в нем ( тыс. чел./ км2). Определить общую площадь территории области. (задачи без использования массивов). 2. Дан массив целых чисел (n=12), заполненный случайным образом числами из...
C++ Непонятная операция
Всем доброго времени суток! Помогите разобраться, ранее не встречал: Есть enum Sute {clubs,diamonds,hearts,spades} в main() мы создаем колоду карт и заполняем. Так вот при заполнении в цикле есть такая операция: Suit su = Suit(j/13); С левой частью все ясно, а вот с правой не очень. Почему мы не работаем с объектом Suit, а как-то напрямую это делаем...вообще не ясно.
C++ Закрывается программа http://www.cyberforum.ru/cpp-beginners/thread160092.html
После запуска откомпилированной программы я её запускаю и окно программы сразу закрывается (пользуюсь компилятором Code::Blocks) как можно это исправить
C++ Вопрос насчёт рекурсии в цикле Здравствуйте. У меня вопрос насчёт рекурсии в цикле. Вот пример: int massiv={1,2,3}; int heapPermute(int n){ cout <<"В начале n=" <<n <<' '; int temp=0; int razmer = sizeof(massiv)/sizeof(int); if(n==0) { for(int i=0; i<razmer; i++) { if(i==0) {cout <<endl; } cout <<massiv <<' '; } } else { подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
20.08.2010, 01:58     Не могу понять в чем ошибка: реализация односвязного списка
Lavroff, это не указатель на ссылку, это ссылка на указатель

Добавлено через 9 минут
Если мы передаем функции указатель, то мы можем изменить значение, на которое он указывает. Но чтобы изменить значение самого указателя (например, выделить внутри функции память для динамического массива или удалить ее), нам нужно передавать адрес самого указателя (т.е. указатель на указатель) или ссылку на указатель. Сравни:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
 
void new5int(int* ptr)
{
    ptr = new int[5];
    for(size_t i = 0; i < 5; ++i)
        ptr[i] = 5;
}
 
int main()
{
    int *ptr = NULL;
    new5int(ptr);
    for(size_t i = 0; i < 5; ++i)
        std::cout << ptr[i] << std::endl;
    return EXIT_SUCCESS;
}
С вот этим:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
 
void new5int(int*& ptr)
{
    ptr = new int[5];
    for(size_t i = 0; i < 5; ++i)
        ptr[i] = 5;
}
 
int main()
{
    int *ptr = NULL;
    new5int(ptr);
    for(size_t i = 0; i < 5; ++i)
        std::cout << ptr[i] << std::endl;
    return EXIT_SUCCESS;
}
Или вот этим:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
 
void new5int(int** ptr)
{
    (*ptr) = new int[5];
    for(size_t i = 0; i < 5; ++i)
        (*ptr)[i] = 5;
}
 
int main()
{
    int *ptr = NULL;
    new5int(&ptr);
    for(size_t i = 0; i < 5; ++i)
        std::cout << ptr[i] << std::endl;
    return EXIT_SUCCESS;
}
 
Текущее время: 22:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru