Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273

Указатели и их обнуления

22.07.2012, 19:31. Показов 4939. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот допустим есть такая штука.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//...
class Parasya ()
{
 private:
  int dom;
 
public:
 Parasya ()
 {
   dom=3;
 }
 show ()
 {
  cout<<dom;
 }
}
Parasya* PtrSVIN;
PtrSVIN = new Parasya;
cout<<PtrSVIN;
PtrSVIN=NULL;
cout<<PtrSVIN;
//...
как бы все норм. Создается указатель и он указывает на какой то кусочек памяти и если надо можно обнулить (сделать так чтоб указатель ни на что не указывал).
Но как только я делаю массив указателей что то не ладится .((
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//...
class Parasya ()
{
 private:
  int dom;
 
public:
 Parasya ()
 {
   dom=3;
 }
 show ()
 {
  cout<<dom;
 }
}
Parasya* PtrSVIN;
PtrSVIN = new Parasya[4];
cout<<PtrSVIN[2];
PtrSVIN[2]=NULL;// здесь не проглатывает компилятор. Помогите кто чем может.
cout<<PtrSVIN[2];
//...
Можете направить учить матчасть, только укажите куда именно.)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.07.2012, 19:31
Ответы с готовыми решениями:

Указатели и указатели на указатели, а также типы данных
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Обнуления массива слов
Задание такое: Написать программу обнуления массива слов длинною 100 элементов, используя все возможные режимы адресации. Написал код:...

Секундомер с возможностью обнуления
Как реализовать секундомер в ActionScript, что бы его можно было обнулять? Смотрел пример на Demiart{ссылка удалена}, но там...

13
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
22.07.2012, 19:47
это не код , а хаус какой-то!
Цитата Сообщение от NafNaf Посмотреть сообщение
C++
1
2
3
4
5
6
7
... class Parasya ()// скобки () к чертям удалить
 { private: int dom; 
public: Parasya () 
{ dom=3; }
 show () { cout<<dom; } }; // точка с запятой!
// это что дальше? main типа? 
 Parasya* PtrSVIN[4]; //вот массив указателей!
1
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273
22.07.2012, 19:50  [ТС]
не ну может оформление и не все норм. просто я накидал не проверя в компиляторе на память упрощенную схему.
но суть в том что обнулить один из элементов массива указателей я немогу. а обнулить простой указатель можно.

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
int main ()
{
//...
class Parasya
{
 private:
  int dom;
 
public:
 Parasya ()
 {
   dom=3;
 }
 show ()
 {
  cout<<dom;
 }
};
Parasya* PtrSVIN;
PtrSVIN = new Parasya;
cout<<PtrSVIN;
PtrSVIN=NULL;
cout<<PtrSVIN;
//... 
return 0;
}
А вот это уже не работает.

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
int main ()
{
//...
class Parasya
{
 private:
  int dom;
 
public:
 Parasya ()
 {
   dom=3;
 }
 show ()
 {
  cout<<dom;
 }
};
Parasya* PtrSVIN;
PtrSVIN = new Parasya[4];
cout<<PtrSVIN[2];
PtrSVIN[2]=NULL;// тут не работает.!!
cout<<PtrSVIN[2];
//... 
return 0;
}
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
22.07.2012, 19:51
C++
1
2
Parasya* PtrSVIN;
PtrSVIN = new Parasya[4];
Это не массив указателей, а указатель на массив.
0
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273
22.07.2012, 19:57  [ТС]
Спасибо теперь понял.
Тоесть мне надо сделать так
Parasya** PtrPtrSVIN;
PtrPtrSVIN = new Parasya* [5];

я правильно понял??
0
117 / 75 / 5
Регистрация: 15.03.2012
Сообщений: 259
22.07.2012, 19:57
Вообще надо писать код или текст ошибки.
Удалять массив указателей надо так:
C++
1
delete[] PtrSVIN;
0
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273
22.07.2012, 19:59  [ТС]
Насчет удаления я знаю. Еще раз повторю - это упрощенная схема. (Но все равно спасибо за совет)
0
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
22.07.2012, 20:00
C++
1
PtrSVIN[2]
а к чему Вы вообще хотите обратится .. если у Вас
C++
1
Parasya* PtrSVIN;
что здесь интересное 2-е? (ну то есть 3-е)
0
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273
22.07.2012, 20:02  [ТС]
Вообще я хотел оптимизировать оперативную память (как бы это смешно не звучало) и составить список из кусочков расположенных в разных местах, а не как обычный массив монолитом. (но видимо как раз это и сделал)
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
22.07.2012, 20: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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
 
class Parasya 
{
 private:
 
     int dom;
 
public:
 
 Parasya ()
 {
     dom=3;
 }
 
 ~Parasya (){}
 
 void show ()
 {
    std::cout<<dom;
 }
     friend std::ostream& operator<<(std::ostream& s, const Parasya & t);
     void  operator=(const int val);
     Parasya & operator=(const Parasya & rhs);
 
};
 
 
std::ostream& operator<<(std::ostream& s, const Parasya & t)
{
    s << t.dom << std::endl ;
    return s;
}
 
 
Parasya & Parasya ::operator=(const Parasya & rhs)
{
    if(this == &rhs) 
    {
       return *this;
    }
    dom  = rhs.dom;
    
    return *this;
}
 
void  Parasya ::operator=(const int val)
{   
    dom  = val; 
}
 
 
int main ()
{
Parasya* PtrSVIN;
PtrSVIN = new Parasya[4];
 
std::cout << PtrSVIN[2];
 
PtrSVIN[2] = NULL;
 
std::cout << PtrSVIN[2];
 
delete[] PtrSVIN;
 
  return 0;
}
1
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273
22.07.2012, 20:52  [ТС]
C2039: ostream: не является членом "std"
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
22.07.2012, 21:16
Цитата Сообщение от NafNaf Посмотреть сообщение
C2039: ostream: не является членом "std"
http://liveworkspace.org/code/... 9a6826090f
0
Фрилансер
Эксперт С++
 Аватар для Dekio
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,373
Записей в блоге: 1
22.07.2012, 21:22
Цитата Сообщение от MrCold Посмотреть сообщение
Parasya & Parasya ::operator=(const Parasya & rhs)
{
if(this == &rhs)
{
return *this;
}
dom = rhs.dom;

return *this;
}
C++
1
2
3
4
5
6
Parasya & Parasya ::operator=(const Parasya & rhs)
{
     if(this != &rhs)
         this->dom = rhs.dom;
     return *this;
}
2
22 / 22 / 2
Регистрация: 22.07.2012
Сообщений: 273
22.07.2012, 22:00  [ТС]
Спасибо всем.
Но я именно вот так хотел
C++
1
2
3
Parasya** PtrSVIN;
PtrSVIN = new Parasya* [10];
PtrSVIN[2]=NULL;
Просто у меня как бы контейнер из 10 позиций.
И я их освобождая должен обнулить, вот и присваиваю их NULL. Просто я думал одно а сделал другое в начале.)
Еще раз всем спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.07.2012, 22:00
Помогаю со студенческими работами здесь

Кнопка обнуления форм
Здравствуйте, товарищи! Мне нужно сделать кнопку, чтобы при её нажатии обнулялись поля, которым я дал определённые названия. Вроде сделал,...

Обнуления значения переменных
Всем привет я немного нуб в программировании, прошу понять и немного обьяснить, как делать перед каждым началом зацикленной...

Обнуления элементов матрицы
Нужно обнулить элементы матрицы которые не входят в ромб (при помощи процедуры,у меня она zeroing). program sortirovka; const ...

После обнуления биоса
Доброго всем времени суток:) Сначала компьютер не включался, потом обнулил биос комп включился потом обрадовался и выключил комп все...

СНПЧ кнопка обнуления чипов
На принтере стоит СНПЧ, и плата которая обнуляет чипы, сломалась (не удачно нажали, и плата на пополам сломалась, но не до конца), и теперь...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru