MegaCraZy6
@MegaCraZy6
Юзерь

Обращение к обьекту через указатель?

Не могу понять почему выскакивает ошибка. Надо через кучу создать обьекты после чего присвоить их переменной x значение n ( n номер обьекта ).

PS: Help туплю...

#include <iostream>
using namespace std;


class Object
{
public:
	int x = 0;
};


int main(int nArg, char* pszArgs[])
{
	Object* objects = new Object[100];
	Object* objaddr;
	for (int n = 0; n < 50; n++)
	{
		objaddr = objects + (sizeof(Object)*n);
		objaddr->x = n;
	}
	return 0;

}
  • Вопрос задан
  • 91 просмотр
Решения вопроса 3
zagayevskiy
@zagayevskiy
Android developer at Yandex
Почему бы не objects[n].x = n
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
objaddr = objects + (sizeof(Object)*n);

sizeof(Object) * не нужен, это не ассемблер.
Ответ написан
Комментировать
32bit_me
@32bit_me
Программист, встраиваемые системы
Если вы хотите вычислять адрес таким образом, то нужно писать так:
objaddr = objects + n;
Но проще сделать так:
for (int n = 0; n < 50; n++)
  {
    objects[n].x = n;
  }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы