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

Ошибка сегментирования (core dumped) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Треугольник http://www.cyberforum.ru/cpp-beginners/thread173573.html
Составьте программу для выполнения следующих заданий: 1. Ввести с клавиатуры длины отрезков a, b и c. 2. Проверить, могут ли быть эти отрезки сторонами треугольника, и вывести соответствующее...
C++ Описать структуру "телефонная книжка" здравствуйте! требуется создать телефонную книжку. вводятся n-ое количество имен и номеров телефонов, потом сортируются по алфавиту. пробовал создавать структуру Код: struct zk { char name; ... http://www.cyberforum.ru/cpp-beginners/thread173550.html
C++ Как прописать строки по- русски
Как прописать строки по-русски, чтобы при выводе на экран не было иероглифов?
Многоразрядные числа C++
Ввести многоразрядное число как строку и сформировать из него массив целых четырёхзначных чисел.(т.е. ячейки по четыре элемента в каждой).
C++ Напишите программу, которая использует функцию для вычисления среднего геометрического трех чисел типа int, что вводит пользователь. http://www.cyberforum.ru/cpp-beginners/thread173518.html
Напишите программу, которая использует функцию для вычисления среднего геометрического трех чисел типа int, что вводит пользователь. Язык форума - русский. Сообщения на других языках являются...
C++ Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения. Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения. подробнее

Показать сообщение отдельно
StUser
11 / 11 / 1
Регистрация: 09.10.2010
Сообщений: 23
09.10.2010, 14:35
Цитата Сообщение от easybudda Посмотреть сообщение
то бишь строка в памяти должна начинаться с адреса mas + 0xffffffff на 32-битных системах. Вот Вам и ошибка сегментации. В отладчике посмотреть не пробовали?
Не совсем так. Отрицательные индексы вполне допустимы:
C++
1
2
3
4
5
6
7
8
#include <cstdio>
 
int main()
{ 
 int a[]={0,1,2,3,4,5,6};
 int *b=a+3;
 printf("%d",b[-1]);
}
То есть, обращение происходит именно к mas-1. А так как mas, похоже, указывает на начало выделенной для массива области памяти, то происходит попытка обращения к предыдущему не зарезервированному сегменту памяти, отсюда и ошибка.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru