Jump to content

cgm2k7

Members
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

0 Comum

About cgm2k7

  1. Boa noite! Bom preciso de uma dica/ajuda em uma problema... tenho duas structs, LIST e NO. lista duplamente encadeada. //insiro/crio 100.000 nos. struct no{ char *nome; char sexo; float nota; float media; int id; struct no *next, *prev; }; struct list{ long int size_list; struct no *begin, *end; }; typedef struct no NO; typedef struct list LIST; for(int y = 0; y < 100000; y++) inserir_inicio(*list); void CreateNo(NO **no) { *no = (NO*)calloc(1,sizeof(NO)); if (*no) { (*no)->nome = "cicero"; (*no)->sexo = 'M'; (*no)->nota = 0.0; (*no)->media = 1; (*no)->id++; (*no)->next = NULL; (*no)->prev = NULL; is_Ok = true; } else { printf("ERRO: Ao alocar memoria em 'void CreateNo(NO **no)'\n"); is_Ok = false; return; } } void inserir_inicio(LIST *list) { NO *no; CreateNo(&no); if (is_Ok) { no->next = list->begin; list->begin = no; list->size_list++; } } // destroy os nos void DestoyList(LIST **list) { if ((*list)->begin == NULL) { free(*list); printf("Lista vazia!\n\n"); } else { NO *p = (*list)->begin, *tmp = NULL; while (p != NULL) { tmp = p; p = p->next; /*tmp->nome = "0"; tmp->sexo = '\0'; tmp->id = 0; tmp->media = 0;*/ free(tmp); } free(p); (*list = NULL); } } o problema é o seguinte: quando inicio o aplicativo ele começão com 512kb, quando criando 100.000 na memoria heap, aumenta para mais ou menos uns 7,8mb, bom ate aqui tudo oks mas quando delete este nos com o free() esperava eu q retornasse para os mesmo 512kb inicias do aplicativo, mas isso não acontece, ele retorna para 1,3mb. minha pergunta é: porque não deleta tudo, já setei zeros e para todos os membros da struct no mas mesmo assim não deleta tudo. Se alguém poder meda da uma dica. OBS: não quero código pronto eu quero apenas dicas se possível bem explicada porque sou meio novato em c kkk.
  2. cgm2k7

    Delphi no Windows 10

    helpe-me
  3. Olá bom dia.. Estou aqui de novo precisando de ajuda... Estou com o seguinte problema: Com este código abaixo, Me possibilita arrastar do Explorer e adicionar em um ListBox. uses Winapi.ShellApi; type TMyform = class(TForm) ... protected procedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES; ... end; procedure TMyform.WMDropFiles(var Message: TWMDropFiles); var numfiles: integer; buf: array[0..MAX_PATH] of char; begin numfiles := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0); if numfiles>0 then begin Application.BringToFront; // only open 1 file at a time // - you could open more than 1 file // at a time by looping thru numfiles DragQueryFile(Message.Drop,0,buf,MAX_PATH); { call some method which opens the file - buf gets automatically typecast to a string if necessary } ListBox1.Items.Add(buf); DragFinish(Message.Drop); // clean up end; end; no formCreatte DragAcceptFiles(Handle, true); e no formDestroy DragAcceptFiles(Handle, false); o problema se eu executar o aplicar como administrador, não adiciona no listbox, isso só acontece no windows 10 já no windows 7 ultimate funcionar tudo normal. Será alguém aqui pode da uma ideia do que pode ser ?! Obrigado pela atenção...
  4. cgm2k7

    Help c++Builder hem eum um memo

    Olá pessoal mais uma vez eu aqui pedindo ajuda.. É o seguinte estou desenvolvendo um aplicativo e preciso visualizar os arquivo que usuário está editando em Hex e ASCII, assim com na imagem veja abaixo: Exatamente como na imagem só que em um memo ou qualquer outro componente. Achei este código na net mas não estou conseguido adapta-lo para abrir em um memo. Se alguém pude me ajudar... Agradeço. # include <cstdlib> # include <iostream> # include <iomanip> # include <fstream> # include <ctime> using namespace std; int main ( long argc, char *argv[] ); void handle ( char file_in_name[] ); void timestamp ( void ); int main ( long argc, char *argv[] ) { char file_in_name[80]; int i; bool VERBOSE = true; if ( VERBOSE ) { timestamp ( ); cout << "\n"; cout << "HEXDUMP:\n"; cout << " C++ version\n"; cout << "\n"; cout << " Compiled on " << __DATE__ << " at " << __TIME__ << ".\n"; cout << "\n"; cout << " Produce a hexadecimal dump of a file.\n"; } // // If the input file was not specified, get it now. // if ( argc <= 1 ) { cout << "\n"; cout << "HEXDUMP:\n"; cout << " Please enter the name of a file to be analyzed.\n"; cin.getline ( file_in_name, sizeof ( file_in_name ) ); handle ( file_in_name ); } // // Otherwise, get the file(s) from the argument list. // else { for ( i = 1 ; i < argc ; ++i ) { handle ( argv[i] ); } } if ( VERBOSE ) { cout << "\n"; cout << "HEXDUMP:\n"; cout << " Normal end of execution.\n"; cout << "\n"; timestamp ( ); } system("pause"); return 0; } void handle ( char file_in_name[] ) { long int addr; unsigned char buffer[20]; long int cnt; long int cnt2; ifstream file_in; long n; // // Open the file. // file_in.open ( file_in_name ); if ( !file_in ) { cout << "\n"; cout << "HANDLE - Fatal error!\n"; cout << " Cannot open \"" << file_in_name << "\"\n"; return; } cout << "\n"; cout << "Hexdump of \"" << file_in_name << "\":\n"; cout << "\n"; cout << "Address Hexadecimal values Printable\n"; cout << "------- ----------------------------------------------- -------------\n"; cout << "\n"; // // Dump the file contents. // addr = 0; while ( 1 ) { file_in.read ( ( char * ) buffer, 16 ); cnt = file_in.gcount(); if ( cnt <= 0 ) { break; } // // Print the address in decimal and hexadecimal. // cout << setw(7) << ( int ) addr << " "; addr = addr + 16; // // Print 16 data items, in pairs, in hexadecimal. // cnt2 = 0; for ( n = 0; n < 16; n++ ) { cnt2 = cnt2 + 1; if ( cnt2 <= cnt ) { cout << hex << setw(2) << setfill ( '0' ) << ( int ) buffer[n]; } else { cout << " "; } cout << " "; } cout << setfill ( ' ' ); // // Print the printable characters, or a period if unprintable. // cout << " "; cnt2 = 0; for ( n = 0; n < 16; n++ ) { cnt2 = cnt2 + 1; if ( cnt2 <= cnt ) { if ( buffer[n] < 32 || 126 < buffer[n] ) { cout << '.'; } else { cout << buffer[n]; } } } cout << "\n"; cout << dec; if ( file_in.eof ( ) ) { break; } } file_in.close ( ); return; } void timestamp ( void ) { # define TIME_SIZE 40 static char time_buffer[TIME_SIZE]; const struct tm *tm; size_t len; time_t now; now = time ( NULL ); tm = localtime ( &now ); len = strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm ); cout << time_buffer << "\n"; return; # undef TIME_SIZE }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.