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

EAccessViolation, если длина строки больше 14 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана строка символов. Является ли заданная она палиндромом http://www.cyberforum.ru/cpp-beginners/thread791927.html
Пожалуйста,Помогите разобраться с ректорской к.р.! Вот есть задание: Дана строка символов. Создать функцию, чтобы проверить, является ли заданная строка палиндромом (Н-р "АВСВА"). Приведенное...
C++ Использовать функцию. Массивы. Заменить в обоих массивах минимальный элемент суммой отрицательных элементов Пожалуйста,ПОМОГИТЕ!!! Это срочно...ректорская контрольная...на завтра Определить два одномерных массива целых чисел А(19), В(26). Первый ввести с клавиатуры, а второй задать как типизированную... http://www.cyberforum.ru/cpp-beginners/thread791925.html
C++ двузначное число, проверка
Здравствуйте, выполнил проверку на чётные/не чётные числа, а как проверить на двузначность ? :-#include <iostream> using namespace std; int main() { int n; setlocale(0, "Rus"); ...
C++ Реализация операторов условия и выбора (составить таблицу истинности для логического выражения)
1) в первом задании необходимо составить таблицу истинности для логического выражения и проверить полученную таблицу с помощью программы на языке С++; 2) во втором задании используйте...
C++ Определение колличества ядер процессора http://www.cyberforum.ru/cpp-beginners/thread791904.html
#include <stdio.h> #include <tchar.h> #include <iostream> #include <windows.h> #include <omp.h> using namespace std; int main(int argc, char** argv) { SYSTEM_INFO sys;
C++ Вычислить площадь заштрихованной фигуры Нужно перевести пример из изображения в код на C++ Конкретно задание: 2. Вычислить площадь заштрихованной фигуры. Необходимые параметры ввести самостоятельно. подробнее

Показать сообщение отдельно
VV_RIP
9 / 8 / 1
Регистрация: 05.02.2012
Сообщений: 105
23.02.2013, 23:46  [ТС]
Ах да ... позабыл поставить квадратные скобки)
Да, это под Win, c++ builder.
Причем я заметил такую особенность, что, когда мы только создали переменную, там лежит только один символ '\0', а как только добавляем хоть один элемент, массив автоматом расширяется до 16, включая символ конца строки, конечно.
Проблема (т.е EAccessViolation) исчезает, только если мы ручками определяем размер массива.
Но тут вопрос: зачем тогда выделяется эта память, если при таком её использовании все заканчивается ошибкой?
Причем, если мы выделили память для 7 элементов и используем strlen, то он покажет 7, хотя на самом деле там ведь 16! И мы можем посмотреть содержимое этих 16 элементов. Видимо в памяти хранится ещё кучка дополнительной инфы, какие элементы массива доступны, а какие как бы и есть, но и их и использовать нельзя ... даже можно, но будет ошибка потом. Но на вопрос зачем это не отвечает ...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru