HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

VirtualAlloc
  #1  
Старый 21.03.2009, 18:48
NorB
Познающий
Регистрация: 20.07.2007
Сообщений: 99
Провел на форуме:
1562993

Репутация: 25
По умолчанию VirtualAlloc

Есть структура моя их на страницу виртуальной памяти 128 штук умещается код какбы рабочий но одно но когда в функции add условие идет на 2 ветку, где при заполнении страници нужно выделить новую страницу, она невыделяется посмотрите что нетак. Там скорее всего lpPtr+=dwPageSize; вроде все как мсдн даже написал а первый параметр в вирт аллок выходит что неправельный%( я непому почему что нетак...
Код:
#include <windows.h>
#include <stdio.h>              // for printf
#include <stdlib.h>             // for exit
#include <conio.h>
#include <string.h>
#include <iostream.h>
#define PAGELIMIT 80            // ask for this many pages

LPTSTR lpNxtPage;               // address of the next page to ask for
DWORD dwPages = 1;              // count of pages gotten so far
DWORD count=0;
DWORD count2=0;
DWORD dwPageSize;
LPVOID lpvBase;
DWORD lpPtr;

struct list {
  char dt[20];
  int x;
  int y;
  int v;
  };
  
list * arr;

void add(int val1, int val2,int val3, char *val4){
     if(((count2+1)%128)!=0){
     strcpy(arr[count].dt, val4);
     arr[count].x= val1;
     arr[count].y= val2;
     arr[count].v= val3;
     count++;
     count2++;
     printf ("On saime page # %d.\n", dwPages);
                        }else{
                         lpPtr+=dwPageSize;
                         arr=(list*)VirtualAlloc((LPVOID)lpPtr,dwPageSize,MEM_COMMIT,PAGE_READWRITE);
                         
                         if (arr == NULL ){
                         printf("VirtualAlloc failed\n");
                         } else {
                         printf ("Allocating another page.\n");
                         };

                         
                         strcpy(arr[count].dt, val4);
                         arr[count].x= val1;
                         arr[count].y= val2;
                         arr[count].v= val3;
                         dwPages++;
                         count++;
                         count2=0;
                         printf ("On new page ¹ %d.\n", dwPages);
                         }
     };


int main(int argc, char *argv[])
{
  SYSTEM_INFO sSysInfo;
  GetSystemInfo(&sSysInfo);     // initialize the structure
  printf ("This computer has page size %d.\n", sSysInfo.dwPageSize);
  printf ("size of struct  %d.\n", sizeof(list));
  dwPageSize = sSysInfo.dwPageSize;
  
  arr=(list*)VirtualAlloc(NULL,PAGELIMIT*dwPageSize,MEM_RESERVE,PAGE_READWRITE);
  arr=(list*)VirtualAlloc(NULL,dwPageSize,MEM_COMMIT,PAGE_READWRITE);

  lpPtr=(DWORD)arr;
  printf("vvedite znachenie, stroku, stolbec, tip\n");
  int a,b,c;
  char tipp[20];
  cin>>a>>b>>c>>tipp;
  for (int f=0; f<130; f++){
  add(a,b,c,tipp);
};
  cout<<arr[130].x<<arr[130].y<<arr[130].v<<arr[130].dt;
  
  system("PAUSE");	
  return 0;
}
 
Ответить с цитированием

  #2  
Старый 21.03.2009, 23:41
_Spy_
Новичок
Регистрация: 06.12.2008
Сообщений: 1
Провел на форуме:
44939

Репутация: 0
По умолчанию

Помогите, пожалуйста, с задачкой.

Взята она с сайта с олимпиадными задачами https://www.spoj.pl/problems/MRECAMAN/
Суть её следующая.
Последовательность Recaman-а определена так:

a0 = 0
Для m, больших 0:
a(m) = a(m-1) - m, если эта разность больше нуля и её до этого момента в последовательности не было;
a(m) = a(m-1) + m, иначе.

Вот первые несколько членов последовательности:
0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9...

Задание состоит в том, чтобы по введённому порядковому номеру k вывести k-ый член последовательности.

Вообще, эту задачу мне нужно сдать на Хашкеле, но пока что я хочу сдать её на другом языке, который я знаю чуть получше (ruby, C). И возникла проблема с придумыванием алгоритма, поскольку решение в лоб (в смысле, просто переписать рекуррентное соотношение, ну и добавить поиск по массиву для проверки, встречалось ли число в последовательности ) не годится для больших k (0 <= k <= 500000). Буду очень признателен, если подскажете эффективное решение данной задачи.

Последний раз редактировалось _Spy_; 22.03.2009 в 11:09..
 
Ответить с цитированием

  #3  
Старый 22.03.2009, 11:12
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


По умолчанию

Массивы
 
Ответить с цитированием

  #4  
Старый 22.03.2009, 12:41
Postal2201
Новичок
Регистрация: 19.03.2009
Сообщений: 1
Провел на форуме:
7936

Репутация: 0
По умолчанию

Здравствуйте товарищи! Помогите пожалуйста сделать програмку для курсовика. Итак нужно:

1) Выполнить дискретизацию расчетной области в виде четырехугольника заданного координатами вершин:
A(-2;1) B(1;4) C(4;0) D(2;-1).

2) Найти узловые неизвестные T(Xi,Yi) по заданному распределению температуры вдоль границы области T(X,Y)=X+2XY+2(X^2)-2(Y^2). Вычислить максимальную абсолютную погрешность полученных результатов.

3) Построить семейство изотерм.

Очень желательно на C#, но можно и на C++

Буду очень признателен!!!
 
Ответить с цитированием

  #5  
Старый 23.03.2009, 21:39
botaniQQQ
Новичок
Регистрация: 15.06.2008
Сообщений: 4
Провел на форуме:
17297

Репутация: 0
По умолчанию

Голову ломаю ... ребята, поможите ?

1) На Си нужно написать вычисления частного и остаток от деления двух полиномов размерности N и M, заданные своими коэффициентами.

2) Дан текст, выяснить является ли этот текст записью вещественного числа по правилу языка Pascal ... (с фиксированной и плавающей точкой).

Мало верится что эту тему посещают, но всёже надеюсь ...
 
Ответить с цитированием

  #6  
Старый 27.03.2009, 23:28
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


По умолчанию

Цитата:
Сообщение от botaniQQQ  
Голову ломаю ... ребята, поможите ?

1) На Си нужно написать вычисления частного и остаток от деления двух полиномов размерности N и M, заданные своими коэффициентами.

2) Дан текст, выяснить является ли этот текст записью вещественного числа по правилу языка Pascal ... (с фиксированной и плавающей точкой).

Мало верится что эту тему посещают, но всёже надеюсь ...
Стоимость задания 500 WMR. Если устраивает, то какие сроки выполнения?
 
Ответить с цитированием

  #7  
Старый 24.03.2009, 11:24
botaniQQQ
Новичок
Регистрация: 15.06.2008
Сообщений: 4
Провел на форуме:
17297

Репутация: 0
По умолчанию

По баксу за лабу сделаете ?
 
Ответить с цитированием

  #8  
Старый 24.03.2009, 13:32
verylagcomp
Новичок
Регистрация: 10.03.2009
Сообщений: 4
Провел на форуме:
2992

Репутация: 0
По умолчанию

пишу на С++ Builder. Программа должна пинговать разные адреса, а также делать преобразование из числового адреса в буквенный и обратно. Командной строкой пользоваться нельзя (так бы,конечно,использовал nslookup или tracert). Как мне это получить?
Для пинга использовал IdIcmpClient, но вроде у него нет таких методов и свойств для связи и dns...подскажите,пожалуйста...
 
Ответить с цитированием

  #9  
Старый 24.03.2009, 14:39
WiPztin
Познающий
Регистрация: 21.03.2009
Сообщений: 32
Провел на форуме:
339263

Репутация: 1
По умолчанию


контрольное задание...создать тест...
на картинке схема
буду рад помощи
 
Ответить с цитированием

  #10  
Старый 24.03.2009, 21:50
ropestyd
Новичок
Регистрация: 25.02.2009
Сообщений: 1
Провел на форуме:
1179

Репутация: 1
По умолчанию

Помогите сделать задание (делфи,консоль),кто реально сделает её с комментариями и объяснит то в долгу не останусь,оплачу работу над ней

10 раз сгенерировать красно-черное дерево из 1000 случайных узлов, подсчитать среднее количество "поворотов", необходимое для построения такого дерева, среднюю дистанцию между корнем и внешним узлом. Объяснить результаты.


P.S. можно написать в ПМ либо icq 195810065
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости. Обсуждения. 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.