Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.07.2010
Сообщений: 5

Указатель динамической памяти и ошибка Invalid pointer operator

08.07.2010, 17:15. Показов 1744. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!У меня программа вычисляет простые числа до 32765 и вывод повторяется три раза в один файл.Но выдается ошибка "204 инвалид поинтер оператор" на строке где освобождается память фримем. ТР 7.1 Почему? Исходники

Pascal
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
36
37
38
39
40
41
42
43
44
program  privacy;
type
  p1   =array[2..32765] of boolean;
const
  low=2;
  up=32765;
var
  i,c,k :longint;
  out :text;
  p   :^p1;
  chis,chis1:string;
procedure print;
  const
    size=6;
    numcol=10;
  var
    i,n:integer;
  begin
    n:=0;
    for i:=2 to up do
      if p^[i] then
      begin
        write(out,i:size);
        n:=n+1;
        if n mod numcol=0 then writeln(out);
      end;
    writeln(out);
  end;
begin
 assign(out,'chis.txt');
 rewrite(out);
 for k:=1 to 3 do begin getmem(p,sizeof(p1));
  for i:=low to up do p^[i]:=true;
  c:=low;
  while 2*c<=up do
  begin
    for i:=2 to (up div c) do p^[i*c]:=false;
    repeat c:=c+1 until p^[c] or (2*c>up);
  end;
  print;
 end;
 for k:=1 to 3 do freemem(p,sizeof(p1));
 close(out);
end.
for k:=1 to 3 do freemem(p,sizeof(p1)); ----на этой строке выдается ошибка 204 вроде все грамотно. в выводе2 раза полностью выдаются а в3 раз не до конца цифры выдаются
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2010, 17:15
Ответы с готовыми решениями:

Ошибка при работе с динамической памятью - 'Invalid pointer operatoion'
Столкнулся с такой проблемой - код исполняется правильно, но при закрытие программы вываливается ошибка(скрин прилогается). Я нашёл...

Ошибка "Invalid Pointer Operator"
Уважаемые форумчане помогите с такой проблемой: вывожу окно справки по нажатии пункта меню и появляется ошибка &quot;Error: raised...

Ошибка при попытке разыменовать указатель, который размещен в динамической памяти другим процессом
Доброго времени суток. Есть родительский процесс, он запускает через createProcess дочерний процесс, передавая ему в командной строке...

14
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
08.07.2010, 17:22
А у меня нет ошибки.
(free pascal)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2010, 17:31
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
program  privacy;
type
  p1=array[2..32765] of boolean;
const
  low=2;
  up=32765;
var
  i,c,k :longint;
  out :text;
  p   :^p1;
  chis,chis1:string;
procedure print;
  const
    size=6;
    numcol=10;
  var
    i,n:integer;
  begin
    n:=0;
    for i:=2 to up do
      if p^[i] then
      begin
        write(out,i:size);
        n:=n+1;
        if n mod numcol=0 then writeln(out);
      end;
    writeln(out);
  end;
begin
 assign(out,'chis.txt');
 rewrite(out);
 for k:=1 to 3 do
  begin
   getmem(p,sizeof(p1));
   for i:=low to up do p^[i]:=true;
   c:=low;
   while 2*c<=up do
    begin
     for i:=2 to (up div c) do p^[i*c]:=false;
     repeat
     c:=c+1
     until p^[c] or (2*c>up);
    end;
  print;
 {end;
 for k:=1 to 3 do}
 freemem(p,sizeof(p1));
 end;
 close(out);
 readln
end.
1
0 / 0 / 0
Регистрация: 08.07.2010
Сообщений: 5
08.07.2010, 18:12  [ТС]
спасибо попробовал , но кажется комп зависает точнее турбо-паскаль.Чёрный экран наверху написано версия , нажимаю на Esc указатель переходить на след строку на старом остается слэш. А ответ посмотрел там все в аорядке.Почему не появляется синий экран паскаля?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
08.07.2010, 18:16
<any key> = #13;



readln
нажать <Any key>

или убрать эту строку в конце и не мучиться
1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2010, 18:19
readln
нажать <Enter>
1
0 / 0 / 0
Регистрация: 08.07.2010
Сообщений: 5
08.07.2010, 18:28  [ТС]
нет он появляется когда нажму ентер , ну почему автоматически не переходить? И хотел бы понять если сумеете коротко пояснить различие между програмами моей и вашей.Я понимаю что выделение и освобождение памяти происходит внутри цикла а почему вне не так работает?

Добавлено через 7 минут
Спасибо!реадлн убрал все в порядке , только для чего он нужен был,не нарушил ли я чего нить?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2010, 18:32
readln нужен чтобы прочитать результат на экране, а не по нажатию Alt+F5
1
0 / 0 / 0
Регистрация: 08.07.2010
Сообщений: 5
08.07.2010, 18:41  [ТС]
Результат на экране не появляется почему то, только черный экран.И Почему максимум можно только 32765 больше он ругается что выхожу за рамки, разве час уже невозможно очень большие числа вычислять, или это нужно какую то сложную программу писать для этого
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2010, 18:48
rvax, У Вас же нет вывода на экран, а только вывод в файл, там и смотрите, на экран просто столько чисел может и не войти.
1
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
08.07.2010, 18:50
Цитата Сообщение от rvax Посмотреть сообщение
не нарушил ли я чего нить?
если только баланс мировой экономики
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2010, 18:50
Такое ощущение что Вы понятия не имеете что Вам нужно от программы. Вы сформулируйте ей точное задание, а потом ожидайте нужного результата. Сами задали числа до определенного максимума и удивляетесь, чего она больше не считает....
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
08.07.2010, 18:53
Цитата Сообщение от Puporev Посмотреть сообщение
Такое ощущение что Вы понятия не имеете что Вам нужно от программы. Вы сформулируйте ей точное задание, а потом ожидайте нужного результата. Сами задали числа до определенного максимума и удивляетесь, чего она больше не считает....
я бы сказал, что вообще странно, что человек написал программу с указателями и процедурой и потом удивляется на readln и свои собственные границы
0
0 / 0 / 0
Регистрация: 08.07.2010
Сообщений: 5
08.07.2010, 18:53  [ТС]
Спасибо! И Еще коротко Чем отличаются наши программы-идея.,почему у меня не четко работало? И как можно расширить предел чисел?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.07.2010, 18:54
Да чел навыдергивал откуда-то непонятных слов и балдеет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2010, 18:54
Помогаю со студенческими работами здесь

sos "Invalid pointer operator"
при возврате из функции постоянно выдает ошибку &quot;Invalid Pointer Operator&quot;, Что делать??? где искать ошибку и вчем она может заключаться???...

Ошибка: Invalid pointer
PStack = ^TStack; TStack = Record Data : Integer; Next : PStack; end; procedure push(var st : PStack;...

Ошибка invalid pointer
Приветствую всех! Сделал задание для универа, все компилилось и выполнялось так, как надо. Сижу с linux(в qt creator). Но после того, как...

Ошибка 'invalid pointer operation'
Я создал прогу которая делает скриншот экрана и передает её к клиенту. И у меня возникли такие проблемы во время работы у меня выходит...

Ошибка Invalid pointer operation
Type TICQContact = record uin: string; pwd: string; end; var Form2: TForm2; contacts: array of...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
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