Em esta pergunta , alguém sugeriu em um comentário que eu deveria não converter o resultado de malloc, ou seja, int *sieve = malloc(sizeof(int) * length); ao invés de: int *sieve = (int *) malloc(sizeof(int) * length); Por que isso seria o
A função malloc executa a alocação de memória dinâmica em C e faz parte da biblioteca padrão. Use esta tag para perguntas sobre uso, comportamento e implementações de malloc.
Em esta pergunta , alguém sugeriu em um comentário que eu deveria não converter o resultado de malloc, ou seja, int *sieve = malloc(sizeof(int) * length); ao invés de: int *sieve = (int *) malloc(sizeof(int) * length); Por que isso seria o
Qual é a diferença entre doing: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); ou: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Quando é uma boa ideia usar calloc sobre malloc ou
Isso tem sido algo que me incomoda há muito tempo. Todos nós somos ensinados na escola (pelo menos eu fui) que você DEVE libertar todos os indicadores que estão alocados. Estou um pouco curioso, porém, sobre o custo real de não liberar memória. Em alguns casos óbvios, como quando mallocé chamado...
Vejo em C ++ que existem várias maneiras de alocar e liberar dados e entendo que, quando você liga, mallocdeve ligar freee quando você usa o newoperador, deve emparelhar deletee é um erro misturar as duas (por exemplo, ligar free()para algo que foi criado com o newoperador), mas não estou claro...
alloca()aloca memória na pilha e não na pilha, como no caso de malloc(). Então, quando eu volto da rotina, a memória é liberada. Então, na verdade, isso resolve meu problema de liberar memória alocada dinamicamente. A liberação de memória alocada malloc()é uma grande dor de cabeça e, se perdida de...
Eu quero saber como malloce freetrabalhar. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout...
Sabe-se que callocé diferente do mallocque inicializa a memória alocada. Com calloc, a memória é definida como zero. Com malloc, a memória não é limpa. Assim, no trabalho diário, eu considero calloccomo malloc+ memset. Aliás, por diversão, escrevi o seguinte código para uma referência. O...
O que é um monte de
Hoje, cheguei à página 167 de The C Programming Language (segunda edição, Brian W. Kernighan e Dennis M. Ritchie) e descobri que o autor diz que devo transmitir malloc. Aqui está a parte do livro: 7.8.5 Gerenciamento de armazenamento As funções malloc e calloc obtêm blocos de memória...
Na minha empresa, existe uma regra de codificação que diz que, após liberar qualquer memória, redefina a variável para NULL. Por exemplo ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Eu sinto que, em casos como o código mostrado acima,...
Estou recebendo este erro: aviso: declaração implícita incompatível da função incorporada 'malloc' Estou tentando fazer isso: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Apenas para referência, a estrutura usada é: typedef struct { fileinfo** filedata; size_t nFiles; size_t...
Acabei de ver este código: artist = (char *) malloc(0); ... e eu queria saber por que alguém faria
Pesquisei no Google e encontrei muitas pessoas defendendo o uso de kmalloc, já que é garantido que você obterá blocos físicos contíguos de memória. No entanto, também parece que kmallocpode falhar se um bloco físico contíguo que você deseja não puder ser encontrado. Quais são as vantagens de ter...
Estou revisando o código C ++ de outra pessoa para nosso projeto que usa MPI para computação de alto desempenho (10 ^ 5 - 10 ^ 6 núcleos). O código se destina a permitir a comunicação entre (potencialmente) diferentes máquinas em diferentes arquiteturas. Ele escreveu um comentário que diz algo...
Em um projeto, alguém empurrou esta linha: double (*e)[n+1] = malloc((n+1) * sizeof(*e)); O que supostamente cria uma matriz bidimensional de (n + 1) * (n + 1) duplas. Supostamente , digo, porque até agora ninguém a quem eu perguntei poderia me dizer o que isso faz, exatamente, nem de onde se...
Disseram-me que o código a seguir tem comportamento indefinido até C ++ 20: int *p = (int*)malloc(sizeof(int)); *p = 10; Isso é verdade? O argumento foi que o tempo de vida do intobjeto não é iniciado antes da atribuição do valor a ele ( P0593R6 ). Para resolver o problema, o posicionamento...
Estou implementando um algoritmo polinomial de divisão e conquista para que possa compará-lo com uma implementação do OpenCL, mas não consigo malloctrabalhar. Quando executo o programa, ele aloca um monte de coisas, verifica algumas coisas e envia o size/2para o algoritmo. Então, quando eu...