HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 13.06.2009, 18:52
h01der
Новичок
Регистрация: 17.02.2009
Сообщений: 13
С нами: 9067867

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

Как определить размер массива в который я буду складывать куски,вот в чем вопрос.
Пока у меня одна идея,считать кол-во элементов файла.Может быть у вас есть другие идеи?
 
Ответить с цитированием

  #12  
Старый 13.06.2009, 19:01
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами: 9017461

Репутация: 414


По умолчанию

Ну есть же прекрасный vector, чем он тебе не подходит? считал данные из файла загнал в вектор, потом обрабатываешь, зачем еще над чем то заморачиватся )
 
Ответить с цитированием

  #13  
Старый 13.06.2009, 19:03
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
С нами: 9443906

Репутация: 3313


По умолчанию

PHP код:
int SizeOfFile(FILE file)
{
    
int size;                
    
fseek(file,0,SEEK_END);    
    
size ftell(file);    
    
rewind(file);
    return 
size;

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

  #14  
Старый 13.06.2009, 19:16
h01der
Новичок
Регистрация: 17.02.2009
Сообщений: 13
С нами: 9067867

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

Chaak,мою идею реализовал?
 
Ответить с цитированием

  #15  
Старый 13.06.2009, 19:22
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами: 10216668

Репутация: 930


По умолчанию

Это извращение, зачем упрямо обходить преимущества языка. Смотри в сторону векторов.
 
Ответить с цитированием

  #16  
Старый 13.06.2009, 19:44
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами: 10386906

Репутация: 599


По умолчанию

Цитата:
Сообщение от h01der  
Ну вообще,все немного сложнее.Файл делится на несколько кусков,программа берет кусок из файла,записывает его в массив,потом я должен считать этот массив,в итоге я должен собрать все эти массивы в один.
у тебя что, отделены эти функции, и к первой ты не имеешь отношения? Т.е. ктото за тебя считывает кусок и грузит, а ты должен загруженный переформировать в массив? Если да, то задача уебищна по определению. Если нет - то перепиши все более логично, чтобы считывание делалось в массив или вектор, как уже отмечали. Работа с массивом, заданным чистым указателем все таки минное поле, которого лучше избегать.
 
Ответить с цитированием

  #17  
Старый 13.06.2009, 19:59
ss88
Участник форума
Регистрация: 27.11.2008
Сообщений: 161
С нами: 9185589

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

Цитата:
Сообщение от h01der  
Программа считывает матрицу из файла и записывает все данные в динамический массив.У кого нибудь есть ли идеи как получить эти данные(матрицу считанную из файла) из оперативной памяти?
Если ты это пишешь на С, то ты можеш обойтись стандартным размером буффера(заранее заданным),а, если твои данные в него не влезут, то сделать realloc твоего буффера и будет тебе счастье... Не понимаю, зачем создавать дл ятаких вопросов отдельные темы?
 
Ответить с цитированием

  #18  
Старый 13.06.2009, 20:13
h01der
Новичок
Регистрация: 17.02.2009
Сообщений: 13
С нами: 9067867

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

Обрати внимание на название темы и не ленись читать полностью тему,раз решил отписаться
 
Ответить с цитированием

  #19  
Старый 14.06.2009, 14:39
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
С нами: 9023100

Репутация: 395


По умолчанию

2 Irdis
Чтение из памяти процесса.

Код:
#pragma comment(linker,"/MERGE:.rdata=.data")
#pragma comment( linker, "/MERGE:.text=.data" )
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWR /IGNORE:4078")
#pragma comment(linker,"/ENTRY:New_WinMain")
#pragma comment(linker,"/NODEFAULTLIB") // раскоменть в релизе
#pragma comment(linker, "/SUBSYSTEM:WINDOWS" )
#pragma comment(linker, "/INCREMENTAL:NO" ) // раскоменть в релизе
#pragma optimize( "gsy", on )
#pragma comment(linker, "/opt:nowin98")

#include <windows.h>
#include <Tlhelp32.h>
//#include <stdio.h>


char szExE[]="magent.exe";
DWORD thPID=-1;
//DWORD BaseSize=0;
//DWORD BaseAddr;


// пишем функцию ищущую процесс по его имени
DWORD GetPIDbyNameExe(char *lpExe)
{
HANDLE hSH;
PROCESSENTRY32 pe32;

hSH=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

// закоменть потом после отладки
if(hSH==INVALID_HANDLE_VALUE)
	{
	MessageBox(0, "CreateToolhelp32Snapshot", NULL, MB_OK|MB_SETFOREGROUND);
	return -1;
	}
	
pe32.dwSize=sizeof(PROCESSENTRY32);
if( !Process32First( hSH, &pe32 ) )
  {
	MessageBox(0, "Process32First", NULL, MB_OK|MB_SETFOREGROUND);
	goto closesh;
	}

	do{
		if(!strcmp(pe32.szExeFile,lpExe))
			{
			
			CloseHandle(hSH);
			return pe32.th32ProcessID;
		}
		
	}while(Process32Next(hSH,&pe32));


	
closesh:
CloseHandle(hSH);
return -1;
}

/* получает базовый адрес памяти экзешника и размер в памяти
BOOL SetImageBase( DWORD dwPID ) 
{ 
  HANDLE hModuleSnap = INVALID_HANDLE_VALUE; 
  MODULEENTRY32 me32; 
 
  hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID ); 
  if( hModuleSnap == INVALID_HANDLE_VALUE ) { return( FALSE ); } 
 
  me32.dwSize = sizeof( MODULEENTRY32 ); 
 
  if( !Module32First( hModuleSnap, &me32 ) ) 
	{ 
	CloseHandle( hModuleSnap );    
	return( FALSE ); 
	} 
 

  BaseAddr=(DWORD)me32.modBaseAddr;
  BaseSize=me32.modBaseSize;

  CloseHandle( hModuleSnap ); 
  return( TRUE ); 
} 
*/


void New_WinMain(void)
	{
	unsigned char *mem;
	DWORD st_addr=0x011B2000;
	HANDLE hProcess;
	HFILE f;

if((thPID=GetPIDbyNameExe((char *)&szExE))==-1){ExitProcess(1); }

hProcess=OpenProcess(PROCESS_VM_READ,FALSE,thPID);

mem=(unsigned char *)LocalAlloc(LPTR,4096);

ReadProcessMemory(hProcess,(LPCVOID)st_addr,mem,4096,NULL);

f=_lcreat("d.txt", 0);
_lwrite(f,(LPCCH)mem,4096);
_lclose(f);

LocalFree(mem);
CloseHandle(hProcess);

ExitProcess(0); 
}
 
Ответить с цитированием

  #20  
Старый 18.06.2009, 09:27
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

Говнокод детектед!
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
4 и более GB ОЗУ для ОС Windows (32/64) NetSter "Железо" 10 28.12.2009 20:11
Назревает революция в технологиях оперативной памяти jerrri Мировые новости. Обсуждения. 1 10.02.2009 02:47
асм, дизасм, принцип работы процов на определенном уровне. Cthulchu "Железо" 0 05.01.2009 20:14



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


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




ANTICHAT ™ © 2001- Antichat Kft.