Articles of malloc

O que o malloc (0) retorna?

O que malloc(0) retorna? A resposta seria a mesma para realloc(malloc(0),0) ? #include #include int main() { printf(“%p\n”, malloc(0)); printf(“%p\n”, realloc(malloc(0), 0)); return 0; } Saída do linux gcc: manav@manav-workstation:~$ gcc -Wall mal.c manav@manav-workstation:~$ ./a.out 0x9363008 (nil) manav@manav-workstation:~$ A saída continua mudando toda vez para malloc(0) . Esta é uma resposta padrão? E por que […]

memory máxima que malloc pode alocar

Eu estava tentando descobrir o quanto de memory eu posso malloc ao máximo na minha máquina (1 Gb RAM 160 Gb HD plataforma Windows). Eu li que o máximo de memory malloc pode alocar é limitado a memory física (na pilha). Além disso, quando um programa excede o consumo de memory para um determinado nível, […]

Diferença entre o tipo de array e array alocado com malloc

Hoje eu estava ajudando um amigo meu com algum código em C, e encontrei um comportamento estranho que não consegui explicar por que estava acontecendo. Nós tínhamos um arquivo TSV com uma lista de inteiros, com um int em cada linha. A primeira linha era o número de linhas que a lista tinha. Nós também […]

Substituindo ‘malloc’ usando o mecanismo LD_PRELOAD

Eu estou tentando escrever uma biblioteca compartilhada simples que registraria chamadas malloc para stderr (uma espécie de ‘mtrace’ se você quiser). No entanto, isso não está funcionando. Aqui está o que eu faço: /* mtrace.c */ #include #include static void* (*real_malloc)(size_t); void *malloc(size_t size) { void *p = NULL; fprintf(stderr, “malloc(%d) = “, size); p […]

Como o malloc () é implementado internamente?

Alguém pode explicar como malloc() funciona internamente? Eu tenho feito algumas vezes strace program e vejo um monte de chamadas de sistema sbrk , fazendo man sbrk fala sobre isso sendo usado em malloc() mas não muito mais.

Como alocar dinamicamente o espaço de memory para uma string e obter essa string do usuário?

Eu quero ler a input do usuário usando o programa C. Eu não quero usar array como, char names[50]; porque se o usuário fornecer uma string de tamanho 10, os espaços restantes serão desperdiçados. Se eu usar o ponteiro de caractere, char *names; então eu preciso alocar memory para isso de tal forma, names = […]

Crie uma function de wrapper para malloc e livre em C

Ei, eu estou tentando criar funções de wrapper gratuitamente e malloc em C para ajudar a notificar-me de vazamentos de memory. Alguém sabe como declarar essas funções assim quando eu chamo malloc () e free () ele vai chamar minhas funções personalizadas e não as funções de lib de padrões?

Como usar uma string C ++ em uma estrutura quando malloc () – a mesma estrutura?

Eu escrevi o seguinte exemplo de programa, mas ele falha com o segfault. O problema parece ser com o uso de malloc e std::string s na estrutura. #include #include #include struct example { std::string data; }; int main() { example *ex = (example *)malloc(sizeof(*ex)); ex->data = “hello world”; std::cout <data << std::endl; } Eu não […]

Por que o malloc não está “consumindo” a memory do meu computador?

Então eu tenho este programa que aloca 256 MB de memory, e depois que o usuário pressiona ENTER libera a memory e termina. #include #include int main(void) { char *p, s[2]; p = malloc(256 * 1024 * 1024); if ( p == NULL) exit(1); printf(“Allocated”); fgets(s, 2, stdin); free(p); return 0; } Eu executei este […]

Como free e malloc funcionam em C?

Eu estou tentando descobrir o que aconteceria se eu tentar liberar um ponteiro “do meio” por exemplo, olhe para o seguinte código: char *ptr = (char*)malloc(10*sizeof(char)); for (char i=0 ; i<10 ; ++i) { ptr[i] = i+10; } ++ptr; ++ptr; ++ptr; ++ptr; free(ptr); Eu recebo uma falha com uma mensagem de erro de exceção sem […]