Тёмный

Programação em C - 14 - Alocação Dinâmica 

Professor Rafael Ivo
Подписаться 3,4 тыс.
Просмотров 15 тыс.
50% 1

Oi pessoal, mais uma aula no curso de programação em C. Continuando no tema de ponteiros, dessa vez sobre uma das ferramentas mais úteis da linguagem C, a alocação dinâmica de memória.
Dúvidas e sugestões, deixem nos comentários.

Опубликовано:

 

12 авг 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 26   
@enzodanielmarinho6696
@enzodanielmarinho6696 2 месяца назад
Caraca que qualidade, muito boa a aula
@janinedefranca7240
@janinedefranca7240 2 года назад
Simplesmente perfeito!
@alexandresousa2857
@alexandresousa2857 3 года назад
salvou muito!!!!
@jorgesimoes4444
@jorgesimoes4444 2 года назад
Só uma coisa: Parabens professor, obrigado !
@JoaoOliveira-od8ht
@JoaoOliveira-od8ht Год назад
Ótima aula
@Gustavooliveira-zl7ru
@Gustavooliveira-zl7ru 2 года назад
Excelente sua aula, poderia imprimir o tamanho de Byte, como demostração do efeito da alocação dinâmica.
@ProfessorRafaelIvo
@ProfessorRafaelIvo 2 года назад
Obrigado. É verdade. Eu pensei nisso só depois. Pensei até em refazer o vídeo, mas não tive mais tempo. Mas espero ter ajudado.
@vitinho9849
@vitinho9849 2 года назад
Mano, muito bom, aulas incríveis!!!! Porque vc não continua com um vídeo de arquivos?! Seria ótimo. Abraços e DEUS te abençoe.S2
@ProfessorRafaelIvo
@ProfessorRafaelIvo 2 года назад
Obrigado. Pretendo continuar sim a playlist.
@vitinho9849
@vitinho9849 2 года назад
@@ProfessorRafaelIvo Fico feliz demais S2.
@suellencostasilva6944
@suellencostasilva6944 2 года назад
Olá, expliacação execelente. Seria interessante se deixasse o cod.fonte . Ao fazer passo a passo, sempre da um pequeno erro. Obrigada!
@Henrique-sg9wm
@Henrique-sg9wm 2 года назад
otima aula professor, vai me salvar na facul haha
@ProfessorRafaelIvo
@ProfessorRafaelIvo 2 года назад
Obrigado! Bons estudos!
@Leossj1
@Leossj1 Год назад
Olá, você pode me dar algum exemplo útil de Alocação dinâmica?
@gustavohellyanviegascorrea5099
Professor, me confirma uma coisa: ao fim da execução da main, se nao usarmos o free(), a memória permanece alocada no computador?
@ProfessorRafaelIvo
@ProfessorRafaelIvo Год назад
Não. Quando a função main acaba, o programa finaliza. Nesse momento, qualquer memória alocada pelo programa é desalocada pelo sistema operacional. Mas é uma boa prática acostumar a sempre liberar a memória.
@lubi1231
@lubi1231 3 года назад
Olá! Somente a alocação dinâmica precisa-se liberar a memória com o comando free, ou na alocação estática comumente usada também precisa??
@ProfessorRafaelIvo
@ProfessorRafaelIvo 3 года назад
Como eu digo no inicio do vídeo, quando um programa executa, ele possui 4 áreas de memória distintas alocadas para ele: uma pro código de máquina, uma pros dados estáticos (variáveis globais ou variáveis declaradas com a palavra reservada static. Essas variáveis nunca são desalocadas durante a execução e mantém o seu valor), uma pra pilha de execução e outra pra heap. Todas as variáveis locais que você declarar, estão sujeitas a alocação dinâmica diferente, uma alocação dinâmica feita pelo Sistema Operacional. Você não controla quando ela é alocada e desalocada. Ela é alocada quando a função é chamada e desalocada quando a função termina (por isso, variáveis locais perdem seu conteúdo depois que uma função termina). Logo, variáveis locais não precisam de free. A heap é a área de memória onde o programador pode alocar memória através do malloc e que ficará alocada até que o programador desaloque com free. Essa memória é independente da pilha, então ela permanece alocada até que o programa execute free. Entende a diferença? Só se usa free, com memória alocada na heap e só se aloca memória na heap usando malloc. As variáveis locais normais não podem ser desalocadas com free porque elas estão em outro lugar na memória, onde o comando free não possui controle.
@aluzqueacende
@aluzqueacende 2 года назад
Para não. Volta com as aulas
@arnailtonbrito2128
@arnailtonbrito2128 3 года назад
Quando eu coloco _fpurge(stdin); nao consigo rodar o programa; Quando o faço: //_fpurge(stdin); não consigo inseir o 'Nome 0' só a partir 'Nome 1': Quantidade de strings: 5 Nome 0: Nome 1: goku Nome 2: brasil Nome 3: amazonas Nome 4: manaus goku brasil amazonas manaus
@ProfessorRafaelIvo
@ProfessorRafaelIvo 3 года назад
Tem certeza de que colocou antes de cada leitura de string? O grande problema é o " " vindo da leitura anterior, que deve ser removido de do arquivo "stdin". Você está lendo um número antes da primeira string e o enter desse número pode estar servindo de entrada pra sua primeira string. Se está usando fpurge (com dois underline), então está no Linux, certo? Isso é importante, porque não cheguei a testar se existe essa função no Windows e seu funcionamento.
@ProfessorRafaelIvo
@ProfessorRafaelIvo 3 года назад
Existe a função fflush(stdin) no Windows que faz essa mesma coisa. Se for o caso, pode dar certo.
@EdersonBairros
@EdersonBairros 3 года назад
eu dei deslike pq tentei acompanhar a aula e ir refazendo todo o codigo passo a passo mas como existe muitos cortes e a aula está acelerada, assim sendo impossível de acompanhar, o código aqui não rodou, deu mais de 20 erros, gostaria que aceitasse como um feed back positivo para melhorar mais as video aulas, leve em consideração criar exemplos mais simples, intuitivos e direto pois se eu estou aqui como tantos outros alunos é porque estamos com dificuldade neste assunto de alocação dinâmica, não crie algo muito complexo.
@ProfessorRafaelIvo
@ProfessorRafaelIvo 3 года назад
Eu verifiquei o vídeo e realmente tem um erro no primeiro código que escrevi (o de alocar um vetor de n números inteiros). O primeiro erro eu comento na edição, do cast (int*) necessário antes de malloc. O segundo erro está no if, porque esqueci de fechar o parêntese. Estou sempre tentando melhorar, mas é inevitável, eu acho, alguns erros passarem.
@EdersonBairros
@EdersonBairros 3 года назад
@@ProfessorRafaelIvo obrigado por aceitar as criticas, e vamos em frente tentando aprender mais e mais. Obg pelo conteúdo.
@lucascostadacruz3215
@lucascostadacruz3215 2 года назад
@@ProfessorRafaelIvo boa dia pode me ajudar no ponteiro e alocação dinâmica Um determinado paciente permaneceu internado em um hospital em um período de tempo. Durante sua internação vários procedimentos foram efetuados. Para cada procedimento, as seguintes informações foram armazenadas no sistema: • Nome do procedimento; • Valor do procedimento; • Tempo de execução do procedimento (em dias); #include #include float pacienteinfo (float *V, int procedimentos) { int i; float soma_procedimentos=0; for ( i=0; i< procedimentos; i++) { soma_procedimentos = soma_procedimentos + V[i]; } return soma_procedimentos / procedimentos; } int main () { int i, n; float *info; printf("Qual é o nome do paciente ? "); scanf("%d", &n); info = (float*)malloc(n*sizeof(float) ); if ( info == NULL ) { printf ("Não foi possível alocar a área desejada "); exit(1); } printf("*** Digitação dos dados da informação *** "); for (i=0; i
Далее
Alocação dinâmica: introdução a malloc e calloc
13:19
1❤️
00:17
Просмотров 11 млн
Ponteiros, Alocação Dinâmica e Listas Encadeadas.
58:46
Ponteiro para Struct
10:45
Просмотров 10 тыс.
Exercícios de Alocação Dinâmica
42:02
Просмотров 3,4 тыс.
APRENDA C# BÁSICO EM 30 MINUTOS!
27:57
Просмотров 145 тыс.
Alocação Dinâmica de Memória
9:53
Просмотров 1,1 тыс.
Me Salva! Programação em C - PLC15 - Ponteiros
10:35
Просмотров 104 тыс.