мне нужно создать массив неизвестной длины. как быть?
я решила что переменную объявлю как указатель:
double* m_pV;
а потом в волшебном месте, где мне нужно и я уже знаю ее размер напишу такую строчку:
m_pV = new double[m_nEdit];

и по-моей логике я должна была бы получить нужный мне массив. но компилятор на последнюю строчку ругается так:
error C2440: '=' : cannot convert from 'double *' to 'double'
There is no context in which this conversion is possible

Объясните, плз, глупенькой, где ошибка и как правильно сделать...


А еще у меня есть еще одна ошибка. img220.imageshack.us/my.php?image=glukia5.png и я не понимаю, как такое могло произойти.... мб там утечка памяти какая-нибудь? или чтонить такое противное... и как с этим можно бороться?

Комментарии
13.11.2008 в 01:40

Esse quam videri
неверное преобразование форматов. из указателя в простую переменную преобразовывать нельзя.
если уж хотите так,то напишите:
m_pV =&new double[m_nEdit];
в написании не уверен,ибо у вас с++ ...
13.11.2008 в 01:46

Lotion ммм.. я понимаю, что ругется что double* не может быть преобразован в double. но мне нужно сделать как-то так. и точно знаю, что это реально. только я не помню как. вот и хочется узнать как именно это записать. потому что все написания, которые мне в голову приходили я уже испытала.
13.11.2008 в 02:00

WAAAAAAAAAGH!!!!!!1111ONEONE
а если попробовать сделать в виде: m_pV = (double *)malloc(sizeof(double)*m_nEdit); чего оно на это скажет?
13.11.2008 в 02:25

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
puity, так какой язык то? C++ или C?

На языке C конструкция выглядеттак: data = (double*)malloc(m_nEdit*sizeof(double));

new - это уже вообще говоря C++. Многие преподы могут придраться. Весь код можно глянуть? Вроде код изначально правильный.
13.11.2008 в 02:37

логика правильная, ошибка гдет в контексте

код фстудию, как обычно(про пасторк не забываем)
13.11.2008 в 02:40

[revolver] язык С++. код очень большой. я не думаю, что есть смысл его выкладывать весь, да и программа изначально не моя,мне надо ее только дописать. я в принципе вписала только это и в нужном месте делете. эта первая встречаемая ошибка. до этого есть только пара ворнингов типа того что присваиванием сужаем область переменной. но это точно не как не влияет.
13.11.2008 в 02:41

slackovod контекста вроде другого не было, кроме выше написанного...
13.11.2008 в 02:46

ой. у меня появилась еще одна ошибка. img220.imageshack.us/my.php?image=glukia5.png просто я попыталась сделать, то что мне надо другим способом... мб там утечка памяти какая-нибудь? или чтонить такое противное... и как с этим можно бороться?
13.11.2008 в 06:50

хм... на скрине вроде бы все правильно кроме несоответствие выравнивания реальным блокам( последняя строка"dc->LineTo..." перед закрывающей скобкой)

насчет первоначальной - смотрите внимательно. если m_pV на самом деле указатель( и присваивание не *m_pV=new double[range]; ((((((((-; ) то ошибки быть не должно
13.11.2008 в 09:53

slackovod на скрине красненьким подчекнуто значение i. там оно явно очень и очень странное. я его даже специально начала обнулять перед началом for'а... а он все равно какой-то гадости равен. даже если это не первый пробег того фора, то он все равно не должен был быть равень такому ужасу...
13.11.2008 в 12:42

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
ой. у меня появилась еще одна ошибка. img220.imageshack.us/my.php?image=glukia5.png просто я попыталась сделать, то что мне надо другим способом... мб там утечка памяти какая-нибудь? или чтонить такое противное... и как с этим можно бороться?
замени начало цикла на:

13.11.2008 в 12:45

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
double* m_pV; а потом в волшебном месте, где мне нужно и я уже знаю ее размер напишу такую строчку: m_pV = new double[m_nEdit];
Смотри, видимо где-то идет переопределение пременной m_pV. Потому как вот такой вот код:

прекрасно компилируется.
15.11.2008 в 16:08

Flex Ferrum там на картинке опечатка, когда я изменила, то ничего не поменялось. а еще оказалась, что проблема в чем-то другом. мне очень интересно покапаться где именно, но в данный момент, нет столько времени.
ошибка, которая у меня появилась позже:

int n;
n=10;//тут стоит брекпоинт
тут дальше код

когда начинаешь идти по шагам, то брекпоинт сам спускается на строчку нижу и пишет в ватче, что переменная n не найдена.
я пыталась удалять практически все файлы проекта и собирать проект заново, но мне не помогло.
я была бы рада, если бы вы объяснили, что такого могло случится, что он себя вел.

да, программа у меня компилировалась адекватно, только вот не работала.

если докапаюсь до истины, потом помещу сюда рассказ в чем была у меня ошибка. вдруг кому-то это будет полезно/интересно