Programar em C - Função malloc() | Alocação Dinâmica Pt.2 - Aula 96
ฝัง
- เผยแพร่เมื่อ 18 ก.ย. 2024
- Na segunda aula da série sobre alocação dinâmica vamos aprender como utilizar a função malloc() e o que é o tipo de dado size_t. Essa aula de alocação de dinâmica vai ser um pouco mais "pesada" do que o normal mas vai explicar em detalhe o funcionamento da função malloc.
Se você estiver aprendendo com as vídeo aulas não deixe de curtir e favoritar o vídeo. Isso ajuda muito o canal a crescer! Valeu!!!
=========POSTE SUAS DÚVIDAS NO FÓRUM:========
- goo.gl/bVuG6
===========CONECTE-SE COM O CANAL===========
FACEBOOK - DeAlunoParaAluno
Blog - dealunoparaalun...
TWITTER - AlunoParaAluno
GOOGLE + - goo.gl/rUJzN
=============================================
==============NOSSOS PARCEIROS==============
BLOG DE CÓDIGO:
Site - blogdecodigo.wo...
Facebook - BlogDeCodigo
BRASIL PENTEST
Site - brasilpentest.com/
Facebook - BrasilPentest
SECURITY ATTACK
Site - securityattack....
Facebook - / 291160901014659
=============================================
Melhor que os professores da minha faculdade!
Muito tempo se passou e eu estou aqui aprendendo mais que minha faculdade
volta amigo!!!!! terminei todas as aulas! kkk parabens mano, se não voltar tudo bem, foi muito conhecimento, mas volta por favor
Ele parou? Celoko, esse professor é muito dahora. Um dos melhores.
O casting somente é necessário em compiladores C++. C faz a conversão automática e segura de ponteiros tipo void para qualquer outro tipo sem precisar de casting.
Utilizar casting, inclusive, pode esconder erros caso você não incluia todas bibliotecas necessárias.
eu não fiz o casting e mesmo assim não deu erro
Pelo que li online é isso mesmo. Inclusive usar casting nesses casos o programa pode compilar mesmo sem o , pra iniciantes esse descuido pode passar despercebido, mas causa erros de execução no programa.
Suas aulas assistidas aqui no Japão!!!! vc é fera irmao, mto obrigado
Nem parece que durou 20 minutos.
Aula muito boa!
Parabéns!
Muito obrigado! Finalmente conseguiu esclarecer o conceito do malloc() pra mim. Parabéns, continue com o trabalho!
Meu irmão, tudo de bom na sua vida, sério mesmo, que Deus te abençoe, eu nunca me senti tão aliviado assistindo a um vídeo, obrigado por retirar essa pica desgraçada que me enfiaram durante a aula. Vídeo simples e com uma ótima explicação, vejo que o senhor é uma pessoa maravilhosa por salvar essas almas aqui neste recinto, que Deus ilumine sua família meu amigo.
Parabéns pelas aulas professor. Você é muito top! Ajudou e ajuda muitos de nós!
2021 e sua aula ajudando!! Como foi difícil achar alguém que explique de forma que entre na minha cabeça kkkkk
Continua Os videos,Pq com eles aprendo mais que na faculdade kkk
Parabéns pela qualidade das informações e pela a sua otima didática !
Sua didática é incrível!
Muito obrigada
mesmo!
Mais claro que esse tutorial é a água! Parabéns pelo vídeo.
Até hoje esse é o melhor tutorial de C que eu já vi. 😎
Um forte abraço.
Parabéns
Bom vlw ate que em fim ja vi muitas aulas e as suas são bem explicado joia!
Parabéns pela aula! sua didática é incrível.
Cara eu to com muita dificuldade em programação e só assistir dois videos seu, só nesses dois videos já aprendi muito mais que na facul
Caralho, o cara explica tão passo a passo, definindo e explicando cada coisa que simplesmente não tem como não entender! Logo eu que tenho ADHD consegui entender de primeira kkkk
cara eu tava todo perdido na faculdade com isso, vc me esclareceu muita coisa, obg de verdade
Obrigado pela aula!!!
muito boa essa explicação , to sempre acompanhando vc , parabéns por esse vídeo
Tu é fera!
VALEU GOSTEI DA AULA
parabéns pela aula , qualidade e didática de alto nível !
ignore o trocadilho .
Eu entendi a referencia
@@Satoshi-jb7cp cara, faz 5 anos que eu fiz esse comentário e tu acredita que nem eu entendi o trocadilho que eu mesmo fiz? KKKKK
Meu melhor professor sem duvidas!!!! vc eh foda cara
Tens uma didática incrível, parabéns!
Ótima vídeo-aula, muito completa. Parabéns pelo trabalho.
caraaa, muito muito obrigado!! to quase terminando tudo!! e tu me ajudou muitooo!! obrigadãooo!!
Eduardo Santos Ihull! Value
Flexão incorreta: [...] tu me ajudou [...]; seria: [...] tu me ajudaste [...];
Kkkkk tu viste com eu me expressei?!
Uma fala cheia de coloquialismos!! Kkk ou tu acha que existe "caraaa", "muitooo", "obrigadãooo" ???
Uma expressão de como eu falaria pessoalmente!!
E obrigado pelo ibope!
Eduardo Santos Eu encarei como flexão coloquial de narração. Porém, é visível que misturaste a conjugação de "tu" e "você"; Isso causa um "bug" (em mim) quando faço a leitura. O uso da conjugação do pronome "você", deve ser obrigatoriamente explícito, caso contrário (else?!), oração aponta para a pessoa de fora da oração, isto é, a terceira pessoa.
amo-te mano
muito boas suas aulas, cara. parabens!
muito obrigado pelas video aulas ! continue o bom trabalho !
Salvando minha vida, obrigado.
Seus vídeos ajuda muito, só gostaria de pedir, se possível, fazer uns vídeos com uns exercícios cabulosos pra gente pegar melhor as matérias ...
pesquisa no google URi
Muito boa aula
Top demaaaais!! Valeu cara!!
A função malloc(), pertencente à biblioteca
pq vc usou a stdlib?
Muito esclarecedor. Obrigado!
GRATIDãO !!!!
Excelente aula!!!
tu é o cara ! valeu pela aula , prova amanhã kk
Eu estudo na USP e mesmo assim vc ensina melhor
MUITO BOM
É bom fazer o casting para prevenir, mas foi de boa sem casting no Code Blocks também.
O meu também não dá erro mas isso não é garantido de funcionar em todos compiladores. Pra assegurar que seu código será compatível em outras máquinas recomendo sempre utilizar casting.
nem sempre será possível saber quanto de memória o programa necessita antes do tempo de execução. Dê uma olhada na aula anterior que eu comento sobre isso.
Na aula 100 e 101 vou mostrar 2 exemplos reais de alocação dinâmica e na próxima série sobre estrutura de dados(fila, pilha e lista) também vamos utilizar alocação dinâmica a todo o momento.
kd a aulaaaa???kkkkkk sdds,ensina bem d+ slc
Iludiu a gente, mas eu ainda tô esperando
muito bom parabéns
Fera !
malloc ou MAAALAAKOOOIIII !!??? hehe não resisti
hahahah antes de ler os comentarios eu pensei nisso.. kkkkkkkkkkkkkkkkkkkkk
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
Kkkkkkkkkkkkkkkk
Como diria o Adoniran, saudosa malloc, malloc querida
Faz de lista encadeada
So deixa eu tentar chegar mas fundo sobre esse casting ele e como se fosse um filtro ? para a variavel a seguir receber tudo correto exemplo int vector[5]; int (ponteiros)p = (int(ponteiro))vector; assim o ponteiro vai ter certeza de que e um vetor com todos os dados inteiros ?
Krlho. Vou espalhar a sua religião para os Calouros da minha universidade em LP1, se eu tivesse conhecido seu canal no primeiro período eu não teria reprovado em C. Suas aulas são excelentes e são provas de que a didática de se vire em entender a logica e faca vc mesmo é um erro. Nosso professor so lê trechos tirados de livros e nos manda fazer exercício durante a aula, ele nem se da ao trabalho de escrever uma linha de código. E diz que é didática que precisamos pensar sozinho.
Cada endereço de memoria faz referencia a um byte, e não um bit, como vc falou. Não é verdade?
Verdade, é um byte.
acho que é bit mesmo, não?
nop kk. lê o livro do monteiro, tem essa informação lá
eh um byte ele que se confundiu na hora de gravar a aula
Eh um byte sim.
Ola professor... acompanho todas as suas aulas elas estão me ajudando muito, mas gostaria de lhe pedir uma grande ajuda em relação a parte de algoritmos de ordenação (método bolha, inserção, seleção, mergesort e quicksot) e também nos algoritmos de lista, fila, pilha e árvore, esses 4 ultimo é que estou com mais dificuldade de entender, e se o vc poder mostra tbm como funciona o algoritmo da tabela hash. sei q é muita coisa professor mas desde já agradeço se o vc poder me ajudar.
O programa ia crashar kkkkkkkkkk ótima aula!
Conseguiu ensinar melhor que minha professora com doutorado em Londres, tenso
Cara, qual é o nome deste programa para visualizar os endereços de memória que você usa? Muito foda cara.
Tem uma versão para Windows ou Ubuntu?
Obrigado!
muito obrigado,se nao fosse voce estaria mais ferrado do que ja estou,obrigado
Imaginemos que char é 2 bytes e int sao os 40 bytes. A minha duvida é se é possivel fazer um ponteiro char e o malloc ser do tipo inteiro visto o char ser só 2 bytes e o int ser 40 bytes.
Ob pela atençao
Vlw vei! Aki como faz para receber um matriz de alocação dinamica numa função, já que, não sei as dimensões da matriz?
vc só pode fazer isso, depois que usa a matriz, aí vc usa o sizeof e descobre o tamanho alocado, n vai adiantar muito já que o comentário é de 3 anos atras, mas outras pessoas podem ter essa dúvida
11:03 Esse ponteiro não retorna int? Não entendi o double.
não.. somente um pouco de C, Java e MySQL
umas aulas de SQL no oracle, seria muito bom!
ta de boa, da pra ver normal...
Ótima aula só faltou um pãozinho com mortadela
Qual a diferença entre estes dois castings?
(int) e (int*) o que tem o asterisco dentro quer dizer que o valor é de um ponteiro?
sim.
para aquele malloc de valor int que é um ponteiro.
malloc() retorna um valor nulo, e valores nulos podem ser atribuídos a qualquer tipo de ponteiro
Não sei se eu entendi certo, mas analisando aqui não faz muito sentido essa função... Eu coloco ela pra alocar a quantidade de bytes de uma função int, então 4 bytes, que equivalem a 32 bits, não seria mais fácil só fazer um vetor de tamanho 32?
Malloc é pra dinamicismo, ele se adapta ao tamanho que é necessario, otimo para casos em que vc n sabe a escalabilidade do seu programa
Porque não usar a memoria estatica?
Qual a diferença entre reservar mais memoria pro programa e reservar memoria dinamicamente durante o mesmo?
Dúvida, no minuto 6:50 é dito que o ponteiro tem o tamanho de 8bytes, eu gostava de perceber porque, visto estar a apontar para um variável inteira de tamanho de 2 bytes. Alguém me ajuda?
Professor, como faço para recuperar um espaço de memória que eu aloquei e não liberei com free(ponteiro)?
opa.. Xcode.. infelizmente disponível apenas para Mac :/
no meu caso, eu estou usando o Geany, usei a linha de código : "int *p = malloc(sizeof(int)); " e não me deu mensagem de erro, parece que ele realmente alocou! hehe
O casting, que é o (int*) antes do malloc, só dá erro em compiladores de c++, em c fazer o casting é considerado um erro a menos q vc queira q o programa seja compatível com a linguagem c++
@@julio9577 nossa! eu não sabia disso! obrigado!
Gostaria de saber se posso ter acesso a partir da aula 98.
Obrigado pela Aula, queria perguntar, eu fis um printf para o endereço de memória de p
printf("%i", p);
é normal o endereço mudar ou o erro é o %i
se usa %p
valeu
por que mesmo sem definir um falor em malloc consigo colocar valores em p[0] p[1] p[3]?...
Eu uso %d para valores INT ao invés do %i, tem alguma diferença?
+Lucas Procópio acho q nao cara, eu tbm uso indiscriminadamente.
Ao usar funções como "printf()", "fprintf()", "snprintf()", etc... realmente, dá na mesma porque a notação de ambos ('d' e 'i') é "signed integer", mas não será a mesma coisa ao usar "scanf()", "fscanf()", "sscanf()", etc. Por que o "%i" espera dados de base 8 (octal), 10 (decimal) ou 16 (hexadecimal) para que a conversão de valores seja feita para um inteiro. Ao usar o "%d" ele não faz essas verificações e acaba se saindo melhor e economizando os "CPU Cycles" (execuções do processador), por isso é dito que: Usar "%d" é mais eficiente do que "%i"
Ao usar funções como "printf()", "fprintf()", "snprintf()", etc... realmente, dá na mesma porque a notação de ambos ('d' e 'i') é "signed integer", mas não será a mesma coisa ao usar "scanf()", "fscanf()", "sscanf()", etc. Por que o "%i" espera dados de base 8 (octal), 10 (decimal) ou 16 (hexadecimal) para que a conversão de valores seja feita para um inteiro. Ao usar o "%d" ele não faz essas verificações e acaba se saindo melhor e economizando os "CPU Cycles" (execuções do processador), por isso é dito que: Usar "%d" é mais eficiente do que "%i"
E o Espaço que o *p estava utilizando o que acontece com ele?
// Exercício 9: Escreva um programa que descubra qual é o maior segmento de memória que é
// possível reservar neste computador.
// Dica: Faça um laço que tente reservar espaço, se conseguir libere (usar free()) este espaço e
// tente reservar um espaço ainda maior. Vai assim até verificar que o programa não consegue. Ir
// aumentando de 1 byte em 1 byte vai fazer o programa demorar muito.
Alguém pode me ajudar?
voce poderia alocar um vetor? Seria interresante!
Porque se usa * no casting?, o int se trasforma em um ponteiro HELPPPPP..........
12:00 eu não recebi um erro, usei o compilador GCC.
Pq o ponteiro de inteiros ocupa 8 bytes na memória?
+Rodrigo Rocha é do tamanho da palavra do S.O. 2 bytes quando é 16 bits, 4 bytes quando é 32 bits e 8 bytes quando é 64 bits
Cara qual nome deste seu compilador?
você sabe assembly?
nao entendi...vc primeiro disse que o ponteiro aponta pro endereço da memória alocada e depois vc usou o próprio ponteiro pra alocar memória
Auguri
1 short aqui é 2. Double é 8. Tenho 8 GB de memória e arq 64 bits. N entendo mt.
onde eu moro, um short está muuito caro, uns 80 talentos.
erro meu :/
Não entendi porque o ponteiro pega 8 Bytes
ele apenas confudiu.
manda-me um resumo disso pls
sou invejosa manda tmb para mim cara
sou seu fã
@@luishilario8038 é memo vei, somos seus maiores fas!!!
th-cam.com/video/J4CaOMAtFxg/w-d-xo.html
Essa não esta em 720p :(
nem no dev c++ apresenta erro sexta linha
Mas qual é necessidade de fazer isso 🤔?
Alguém me ajuda. Pq não dá pra fazer isso aqui
Char nome[30] = "Nome da pessoa";
nome = "Outro nome";
Pq não dá pra fazer isso? Tô quase chorando aqui de raiva
da erro onde:::::
Exemplo:
char nome[30] = 'Gabriel';
se n der certo, então n sei