Articles of gerenciamento de memory

@ “Algum texto” dá um autoreleased ou retém 1 object de volta?

Dado este código: // Initialize string NSString *name = @”Franzi”; @ “” macro cria um NSString com determinado texto (aqui o nome Franzi) e um RETAIN COUNT OF 1? Então @ “” dá um NSString com que tem que ser lançado ou não? Eu sou responsável por este object? O segundo exemplo de código me […]

Devo liberar char * inicializado usando literais de string?

Devo liberar variables char* quando elas foram inicializadas usando literais de string? Para mim, a syntax me levaria a supor que eles são apenas alocados em pilha, mas esse exemplo me mostrou que eles não são. #include #include static char* globalBuffer; typedef struct Container { char* buffer; } Container; Container* Container_new(char* buffer) { Container* container […]

É uma boa prática liberar um ponteiro NULL em C?

Duplicar Possível: O livre (ptr) onde ptr é NULL memory corrompida? Eu estou escrevendo uma function C que libera um ponteiro se foi malloc() ed. O ponteiro pode ser NULL (no caso de um erro ocorrer e o código não ter a chance de alocar nada) ou alocado com malloc() . É seguro usar o […]

Como lidar com OutOfMemoryError em Java?

Eu tenho que serializar em torno de um milhão de itens e recebo a seguinte exceção quando eu corro meu código: Exception in thread “main” java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Unknown Source) at java.lang.String.(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at java.io.BufferedReader.readLine(Unknown Source) at org.girs.TopicParser.dump(TopicParser.java:23) at org.girs.TopicParser.main(TopicParser.java:59) Como eu cuido disso?

Posso fazer um memcpy copy-on-write no Linux?

Eu tenho um código onde eu freqüentemente copio um grande bloco de memory, geralmente depois de fazer apenas pequenas alterações nele. Implementei um sistema que rastreia as alterações, mas achei que seria bom, se possível, dizer ao sistema operacional para fazer uma cópia da memory e deixá-la lidar apenas com uma cópia dessas partes. qual […]

Está “sem memory” Um erro recuperável?

Eu tenho programado há muito tempo, e os programas que vejo, quando ficam sem memory, tentam limpar e sair, ou seja, falhar graciosamente. Não me lembro da última vez que vi um realmente tentar se recuperar e continuar operando normalmente. Tanto processamento depende de ser capaz de alocar memory com êxito, especialmente em idiomas coletados […]

Esse tipo de memory é alocado no heap ou na pilha?

No contexto de C ++ (não que isso importe): class Foo{ private: int x[100]; public: Foo(); } O que eu aprendi me diz que se você criar uma instância do Foo da seguinte forma: Foo bar = new Foo(); Então o array x é alocado no heap, mas se você criou uma instância do Foo […]

Qual é o custo de usar autorelease em cacau?

A maior parte da documentação do Apples parece evitar o uso de objects autoreleased especialmente ao criar visualizações de gui, mas eu quero saber qual é o custo de usar objects autoreleased? UIScrollView *timeline = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 20, 320, 34)]; [self addSubview:timeline]; [timeline release]; Em última análise, devo usar uma estratégia em que tudo […]

Capacidade inicial do vetor em C ++

Qual é a capacity() de um std::vector que é criado usando o construtor padrão? Eu sei que o size() é zero. Podemos afirmar que um vetor construído padrão não chama a alocação de memory de heap? Dessa forma, seria possível criar um array com uma reserva arbitrária usando uma única alocação, como std::vector iv; iv.reserve(2345); […]

Iterando sobre uma Árvore Binária com O (1) Espaço Auxiliar

É possível iterar através de uma tree binária em O (1) espaço auxiliar (sem usar uma pilha, fila, etc.), ou isso foi provado impossível? Se é possível, como pode ser feito? Edit: As respostas que obtive sobre isso ser possível se houver pointers para nós pai são interessantes e eu não sabia que isso poderia […]