Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для Krist_ALL
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317

Неверный размер массива. в чем ошибка?

11.03.2010, 15:40. Показов 2805. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int le( int array[]) {
      int i=0;
 while(array[i++]);
 return (i-1);
}
 
 
int main() {
 
 
 
    int a [10] = {1,2,3,4,5,6,7,8,9,10};
cout <<le(a)<<endl;
 
getch();
return 0;
}

выводит 25...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2010, 15:40
Ответы с готовыми решениями:

В чём ошибка? plot2d: Неверный размер входных параметров: ожидался совместимый размер
x=;y=;plot2d(x,y',style=); plot2d: Неверный размер входных параметров: ожидался совместимый размер.

Ошибка сервера. Неверный размер блока для Bpool:
День добрый! Помогите чем можете... Тут такое у пользователя встретил: &quot;Ошибка сервера. Неверный размер блока для BPOOL:...

Ошибка xNet: Получен неверный размер блока данных
Писал как-то программу для личного использования... Всё работало отлично. Использовал xNet, сегодня утром пользовался, было всё ок. ...

13
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.03.2010, 15:49
Krist_ALL, это строка нулём заканчивается. С обычным массивом в функцию надо и его размер передавать.
0
 Аватар для Krist_ALL
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
11.03.2010, 16:22  [ТС]
int числа
какой ноль?
и всерапвно 25 непойму откудо взелось
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.03.2010, 17:48
Цитата Сообщение от Krist_ALL Посмотреть сообщение
int числа
какой ноль?
Как по-вашему, когда этот
Цитата Сообщение от Krist_ALL Посмотреть сообщение
while(array[i++]);
цикл завершиться должен, и в array[i] что будет после выхода из него?
0
 Аватар для Krist_ALL
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
11.03.2010, 20:35  [ТС]
ничего не будет. array не изменяется.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
11.03.2010, 20:47
Krist_ALL, как уже сказал easybudda, нулем заканчиваются строки. Строка "abcd" на самом деле есть строка "abcd\0". Поэтому имея строку можно легко вычислить ее размер.

С массивами дела обстоят иначе. Невозможно вычислить размер массива, нужно этот размер "таскать" вместе с массивом.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
12.03.2010, 00:48
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Невозможно вычислить размер массива
Неверное утверждение.
Для статических массивов
C++
1
int size = sizeof(mas)/sizeof(mas[0]);
Для динамических
C++
1
int size = _msize(mas)/sizeof(mas[0]);
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
12.03.2010, 01:22
Цитата Сообщение от M128K145 Посмотреть сообщение
C++
1
int size = _msize(mas)/sizeof(mas[0]);
Одна беда: это самое _msize() - очередное мелкомягкое недоразумение, а не стандартная функция языка С/С++... Хотя, как можно динамически выделить память не зная, сколько её нужно, я, честно говоря, не представляю... Есть, конечно, тонкости, вроде strdup(), которая, что не удивительно, резервирует на байт больше, чем strlen() возвращает... А вообще, единственный случай, который могу себе представить, когда нужно как-то хитро размер массива узнавать, это когда он объявлен как-то так:
C
1
int arr[] = { 1, 2, 3, 4, 5, 6 };
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
12.03.2010, 13:39
Цитата Сообщение от M128K145 Посмотреть сообщение
Неверное утверждение.
Имеется ввиду, что невозможно вычислить размер массива, переданного некой функции, так как массив передается как указатель на его первый элемент.
0
 Аватар для Krist_ALL
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
12.03.2010, 18:27  [ТС]
Имеется ввиду, что невозможно вычислить размер массива, переданного некой функции, так как массив передается как указатель на его первый элемент.
1- я этот пример взял из книжки
2 - Вот ситуация
----------------------------------------
я читаю строки из файла и загоняю их в массив
хочу вывести первую букву каждой строки.
for(i=0;i<[РАЗМЕР_МАССИВА];i++)
вот как узнать? я раньше кодил на пхп и отстутсвие функции определения размера массива меня тервожит..
Имеется ввиду, что невозможно вычислить размер массива, переданного некой функции, так как массив передается как указатель на его первый элемент.
[/QUOTE]
1- я этот пример взял из книжки
2 - как же тогда работает функция strlen?en?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
12.03.2010, 20:11
Цитата Сообщение от Krist_ALL Посмотреть сообщение
я этот пример взял из книжки
Скорее всего это плохая книга.
Цитата Сообщение от Krist_ALL Посмотреть сообщение
как же тогда работает функция strlen
Функция strlen принимает строку. И как уже говорилось выше строки заканчиваются нулевым символом.
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
12.03.2010, 20:15
ХТО АВТОР, может в нете есть, скачаю посмотрю, как люди пишут книги.
0
 Аватар для Krist_ALL
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
15.03.2010, 15:54  [ТС]
почему
int array[10] = {0,1,2,3,4,5,6,7,8,9};
cout <<sizeof(array)/sizeof(int)<<endl;

выводит верный результат?

а когда передаю массив по указателю то нифига.

в маин функция сайзоф знает размер массива а в отделбной функции из параметра определить не может...
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
15.03.2010, 18:32
Krist_ALL, потому что массив передается как указатель на первый элемент массива и когда ты с помощью sizeof пытаешься получить его размер, sizeof возвращает размер этого указателя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2010, 18:32
Помогаю со студенческими работами здесь

Деление даёт неверный ответ, в чем ошибка?
mov eax,-50 imul eax, mov ebx, 180 imul eax, idiv ebx умножение нормальное(в смысле результат верный), а деление даёт неверный...

В чем может быть ошибка. Неверный синтаксис команды, ассемблер
.model tiny .code org 100h start: ;--------------------- Вывод строки сообщения Введите строку mov ah, 9h lea dx, mess ...

При создании модели выпадает исключение "Неверный размер входного массива"
При переходе в следующее окно (WPF) передаю параметры через конструктор окна, в самом конструкторе вызываю построение модели передавая эти...

Ошибка CS1586 При создании массива следует указать размер массива или инициализатор массива
Не понимаю в чём ошибка. Ошибка CS1586 При создании массива следует указать размер массива или инициализатор массива. using...

Неверный размер Bitmap'a
Всем привет! Загружаю картинку размером 1920х1080: bmp = BitmapFactory.decodeResource(getResources(), R.drawable.bmp); Затем вывожу...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru