Форум: "Потрепаться";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Внизвопрос по C++ Найти похожие ветки
← →
ghg © (2004-08-11 18:47) [0]Нужно объявить массив и выделить под него память, делаю так:
int *number_current_sorted;
number_current_sorted = (int *)calloc(VectCoordLen, sizeof(number_current_sorted[0]));
после выделения памяти в массиве тольок один элемент. Как сделать правильно?
ЗЫ: не надо отсылать к книжкам, нету возможности посмотреть и нужно сейчас ответ на вопрос иметь.
← →
VMcL © (2004-08-11 18:53) [1]number_current_sorted = (int *)calloc(VectCoordLen, sizeof(number_current_sorted[0] * КвоЭлементов));
← →
Тень пастора Шлага (2004-08-11 18:56) [2]Какой же это С++? Это С в чистом виде
в С++
number_current_sorted = new int(кол-во эл-тов);
← →
wicked © (2004-08-11 19:00) [3]
> number_current_sorted = (int *)calloc(VectCoordLen, sizeof(number_current_sorted[0]
> * КвоЭлементов));
как раз код в вопросе правильный...
вопрос в том, как уважаемый ghg © узнал, что в массиве один элемент?... VectCoordLen чему равен?...
> Какой же это С++? Это С в чистом виде
ЗЫ а это тенденция такая - многие на этом форуме считают, что си и си++ - один и тот же язык... а некоторые даже этого не знают о си, а только о visual c...
← →
ghg © (2004-08-11 19:03) [4]>Тень пастора Шлага (11.08.04 18:56) [2]
Ну пусть будет C, для меня разницы нет
>VMcL © (11.08.04 18:53) [1]
странно
в MSDN написано что первый параметр это количество элементов, а второй это размер одного элемента а не всех в сумме. Разве не так?
← →
Ega23 © (2004-08-11 19:04) [5]а только о visual c...
++
← →
VMcL © (2004-08-11 19:04) [6]>>VMcL © (11.08.04 18:53) [1]
Oops. Не заметил, что calloc, а не malloc.
← →
ghg © (2004-08-11 19:06) [7]>wicked © (11.08.04 19:00) [3]
не нужно передергивать
да я не знаю разницы между с и с++ потому что ими не занимался
код сишный, компиляется в MSVC 6
VectCoordLen = 100;
а само содержимое массива я смотрю в Watch и там один элемент
← →
wicked © (2004-08-11 19:11) [8]> ghg [7]
> а само содержимое массива я смотрю в Watch и там один элемент
наивный... поверь мне, если указатель не NULL, то их там 100... а поскольку ты обьявил переменную как int*, то и получи, что хотел - откуда отладчику знать, сколько там памяти выделено под поинтер?...
> не нужно передергивать
> да я не знаю разницы между с и с++ потому что ими не занимался
и не надо принимать всё на свой счет, ок?... :)
← →
ghg © (2004-08-11 19:14) [9]>wicked © (11.08.04 19:11) [8]
хорошо
как нужно объявить массив и как выделить память чтобы видно его было содержимое в Watch?
да я тоже погорячился :)
← →
ламер © (2004-08-11 19:19) [10]> Тень пастора Шлага (11.08.04 18:56) [2]
> Какой же это С++? Это С в чистом виде
> в С++
> number_current_sorted = new int(кол-во эл-тов);
таки скобочки квадратные должны быть.
... = new int[count];
← →
wicked © (2004-08-11 19:20) [11]1. обьявить статически - int number_current_sorted[100]
2. обьявить "динамически" - int * (number_current_sorted[100])
3. (самый реальный) плюнуть на обьявления и заставить Watch поверить, что там больше одного элемента... поскольку, я так понял, используется msvc, а там отладчик - та еще песня, то тут я не помощник, хотя извернуться можно... например, если используется где то выражение типа number_current_sorted[index], то такое выражение можно скормить Watch"у - пусть показывает текущее значение....
как вариант - заставить показывать дамп памяти под number_current_sorted....
← →
Ega23 © (2004-08-11 19:22) [12]Самый лучший отладчик - SoftIce (чтоб он сдох)!
← →
Igorek © (2004-08-12 10:49) [13]
> ламер © (11.08.04 19:19) [10]
> таки скобочки квадратные должны быть.
> ... = new int[count];
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c