Форум программистов, компьютерный форум CyberForum.ru

Как узнать размер массива? - C++

Восстановить пароль Регистрация
 
Seroga7
 Аватар для Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
08.03.2013, 19:31     Как узнать размер массива? #1
Нужно узнать размер введенного пользователем массива, но sizeof() почему-то не работает, помогите пожалуйста разобраться!

C++
1
2
3
4
5
6
7
8
9
10
int main(){
char work_str[100];
    int size_of_str;
 
scanf("%s", work_str);
size_of_str = sizeof(work_str)/sizeof(work_str[0]);
cout << "\n" << size_of_str;
}
 
system("pause");
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
08.03.2013, 19:34     Как узнать размер массива? #2
всмысле количество введённых пользователем элементов?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11818 / 6797 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
08.03.2013, 19:39     Как узнать размер массива? #3
Цитата Сообщение от Seroga7 Посмотреть сообщение
C++
1
size_of_str = sizeof(work_str)/sizeof(work_str[0]);
Кол-во элементов в массиве(всего байт/размер одного элемента)

Если у Вас си-строка (массив char с завершающим нулем), и необходимо найти кол-во символов в ней, то можете воспользоваться функцией
C++
1
size_of_str=strlen(work_str);
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
08.03.2013, 19:42     Как узнать размер массива? #4
Что делает
C++
1
system("pause");
за пределами функции main ?
Вот код для размышления:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main() {
    int size_of_str;
    char work_str[100];
    scanf("%s", work_str);
 
    printf("full size = %d\n",sizeof(work_str)/sizeof(char));
    printf("user size = %d\n",strlen(work_str));
    getchar();
    getchar();
}
Seroga7
 Аватар для Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
08.03.2013, 19:42  [ТС]     Как узнать размер массива? #5
Спасибо, я вижу что жестко протупил...
OhMyGodSoLong
08.03.2013, 19:59     Как узнать размер массива?
  #6

Не по теме:

Более дуракоустойчивая версия с защитой от передачи простых указателей.

C
1
2
3
#define ARRAY_SIZE(array)                             \
  ((sizeof(array) / sizeof(array[0])) /               \
   ((size_t) (!(sizeof(array) % sizeof(0[array])))))

Yandex
Объявления
08.03.2013, 19:59     Как узнать размер массива?
Ответ Создать тему
Опции темы

Текущее время: 12:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru