Articles of memory

Erro ao lidar com a memory – mremap_chunk: Assertion

Parece que o meu post anterior, mas a questão aqui é diferente .. Esta é a estrutura C do problema – typedef struct ip_esp_private { /* keep track of things privately */ u_int32_t type; u_int32_t ivlen; u_int32_t icvlen; u_int32_t keylen; /* length of “Encryption key */ u_int32_t akeylen; /*length of authn key */ u_int32_t key[0]; […]

Como apontar o espaço 2D / 3D em uma memory pré-alocada

Eu memory otimizada um código que tenho para uso incorporado. Ele funciona bem, mas o resultado disso é que eu tenho um monte de mallocs 1D, 2D e 3D e libero no meio de funções que diminuem o tempo de execução. Por várias razões, decidi modificar o jeito que eu estava fazendo. Eu quero alocar […]

tamanho de um ponteiro alocado por malloc

char* pointer; pointer = malloc (20000); printf(“%d”, sizeof(pointer)); //output: 8 Eu estava esperando 20000 para a saída desde que eu reservei 20000 bytes com malloc. Mas, retornou 8. Por que isso está acontecendo?

Segfault não acontece

Eu tenho o seguinte código c: #include #include int main (){ uint8_t *array; int i=0; for(;i<32120;i++) printf("Array[%d] = %d \n",i,*(array+i)); } Como eu não declaro a memory para array, eu esperaria que esse código fosse segmentado na segunda iteração, mas não é o caso (acontece em i == 3295 no meu framboesa e maior valor […]

Como posso alocar memory suficiente para uma linha de texto lida de um arquivo em c

O objective do meu programa que eu preciso escrever é que ele irá ler em uma linha de um arquivo ONLY ONCE (ou seja, quando você lê-lo uma vez que você não deve voltar para o arquivo e lê-lo novamente), e deve armazenar essa linha em uma matriz de caracteres. O tamanho da matriz deve […]

strdup () causando vazamentos de memory?

Eu implementei uma function que retorna uma string. É preciso um inteiro como parâmetro ( age ) e retorna uma string formatada. Tudo está funcionando bem, exceto pelo fato de que tenho alguns vazamentos de memory malucos. Eu sei strdup () é a causa disso, mas eu tentei pesquisar algumas correções sem sucesso. Meu código […]

Deslocamentos de endereço são resolvidos durante o tempo de compilation em C / C ++?

void *p = malloc(1000); *((int*)p) = 666; *((int*)p+sizeof(int)) = 777; int i; for (i = 0; i<10; ++i) printf("%d ", *((int*)p+sizeof(int)*i)); O deslocamento manual está sendo resolvido em tempo de compilation ou adiciona sobrecarga de execução de operações aritméticas durante o tempo de execução?

alocação dinâmica de memory para strings em c

Eu encontrei este código funcionando perfeitamente. #include #include int main(int argc,char *argv[]) { char* s; /* input string */ s=malloc(sizeof(s)); int c; if(argc==1){ // if file name not given while (gets(s)){ puts(s); } } } O que eu não entendo é, como é que a string é armazenada na memory. Eu estou alocando memory somente […]

mprotect sempre retorna argumentos inválidos

Eu estou tentando modificar um valor no segmento .text usando proteger para me dar access de escrita: int pageSize = sysconf(_SC_PAGE_SIZE); int *toModify = (int *)(foo+5); if (mprotect(toModify, pageSize, PROT_WRITE) < 0 ) { perror("mprotect failed with error:"); return -1; } *toModify = 5; printf("Modify :%i",foo()); O mprotect nunca funciona. Ele sempre retorna um mprotect […]

Matriz de structs realloc stderr de memory

Eu estou tentando realocar uma matriz de estruturas quando ele fica sem espaço como eu estou colocando elementos para ele, mas eu continuo recebendo um stderr realloc. A matriz de struct acabará tendo 235.000 elementos nela. Quando eu configuro o tamanho inicial para 100.000, recebo o stderr quando tento realocar. Se eu tiver o tamanho […]