Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Hotbed
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60

Возникнут ли последствия с динамическим массивом?

10.05.2011, 02:48. Показов 774. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если в программе не задается размер массива (строка) и пользователю не подается запрос на размерность можно ли его задать (не имея последствий) таким способом при вводе.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# include <iostream>
#include <cstdio> 
using namespace std;
 
int main()
 
 
{  char mas[]={};
 
    gets(mas);
 
    for (int a =0; mas[a]!='\0';a++)
          cout << *(mas+a)<< endl;
 
   
    cin.get();
    cin.get(); 
    
    }
 
 
//и второй вариант на эту тему размерность через strlen
 
 
 
///////////
  char mas[]={};
 
    gets(mas);
 
int len = strlen(mas);
 
for(int a = 0; a < len; a++)
  cout << mas[a] << endl; 
////////////////
В таких операторах как new и malloc как я понял нужно все равно задавать размер массива как пример:
char *str = new char[100]; все равно задается массив 100 символами, а можно ли без определения его размера задать его размер после ввода с клавиатуры какой нибудь строки?

В моем коде я так подозреваю задается массив с нулевой размерностью и нулевым значениями и при заполнении он выходит за границы. Если не прав поправьте пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2011, 02:48
Ответы с готовыми решениями:

Класс с динамическим массивом
доброго времени суток! помогите мне немножко: создать клас vector для сохранения массиву, розмеры от 10 до 10к, память виделите...

Работа с динамическим массивом
Помогите, пожалуйста. В чем проблема? Компилирует, но выполнять не хочет. Надо вставить элемент в конец динамического массива, удалить...

Проблема с динамическим массивом
Когда расширяется массив в первое поле первого элемента структуры вносятся изменения( появляются кракозябры) Не могу понять что делаю не...

6
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
10.05.2011, 02:56
функцию gets() нельзя использовать. вместо неё fgets()
нельзя записывать чтото в пустой массив, это может привести к ошибке

Добавлено через 2 минуты
з.ы. оба варианта одинаково неправильные.
0
 Аватар для Hotbed
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
10.05.2011, 02:58  [ТС]
Цитата Сообщение от nxnx Посмотреть сообщение
нельзя записывать чтото в пустой массив, это может привести к ошибке
Значит только с резервированием памяти
а чем gets от fgets отличается? Ведь в принципе код с ним робит
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
10.05.2011, 03:06
Цитата Сообщение от Hotbed Посмотреть сообщение
Значит только с резервированием памяти
а чем gets от fgets отличается? Ведь в принципе код с ним робит
gets потенциально опасная функция, в которой нету возможности проверить размер входного буфера,
компилятор gcc выдаст варнинг если её использовать
1
 Аватар для Hotbed
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
10.05.2011, 03:10  [ТС]
Нашел тут кое че
Функция
fgets аналогична библиотечной функции gets, однако, gets заменяет
символ новой строки нулевым символом. В принципе то что нужно для обработки символов
На dev c++ 4.9.9.2 робит
0
152 / 150 / 44
Регистрация: 09.02.2010
Сообщений: 407
10.05.2011, 03:26
nxnx дело говорит.
C++
1
2
3
4
5
FILE * pFile;
char mystring [100];
 
 fgets (mystring , 100 , pFile); // считали строку безопасной функцией 
 mystring[strlen(mystring) - 1] = '\0'; // выкинули символ перехода на новую строку - профит
1
 Аватар для Hotbed
50 / 4 / 0
Регистрация: 02.04.2011
Сообщений: 60
10.05.2011, 03:32  [ТС]
Чуть по чуть изучаю спасибо ребят за разъяснения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2011, 03:32
Помогаю со студенческими работами здесь

Проблема с динамическим массивом
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int l,r,i=0,j=0,k=0,k1=0,k2=0,x=2,z=1;int ost; int...

Проблема с динамическим массивом С++
Есть задача: Дан Двумерный массив целых чисел. В каждой его строке найти: а) сумму отрицательных элементов; б) количество четных...

Работа с динамическим массивом
Дано: динамический двумерный массив. Определить сумму всех элементов (с помощью функции, массив и его размерность передать в качестве...

Проблемы с динамическим массивом
Задание звучит так : написать полноценную программу для представления информации для людей фамилия имя улица номер дома, создать...

Странность с динамическим массивом
Меня в тупик поставило следующая ошибка (&quot;Название исполняемого файла&quot; has triggered a breakpoint.) В данном простеньком коде. Кто...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru