Categoria: Linguagem C

C é a linguagem que sustenta a computação moderna: sistemas operacionais, bancos de dados, interpretadores de outras linguagens e quase todo sistema embarcado. Trabalha perto do hardware, com controle explícito da memória através de ponteiros — o que exige disciplina, mas ensina como o computador realmente funciona por baixo das abstrações.

Linguagem C

Funções de string (string.h)

Esta aula aborda as principais funções da biblioteca string.h em C, como strlen, strcpy, strcat e strcmp, além de suas versões mais seguras (strncpy, strncat, strncmp). Também discute o problema de buffer overflow e boas práticas para manipulação de strings.

Lido
Linguagem C

Modelo de memória

Esta aula aborda o modelo de memória em C, explicando a diferença entre stack e heap, os segmentos de código, dados e BSS, e como endereços de memória são organizados. O aluno aprenderá a estrutura básica da memória de um programa C, fundamental para entender alocação dinâmica e gerenciamento de recursos.

Lido
Linguagem C

Alocação dinâmica: malloc e free

Nesta aula, você aprenderá a utilizar as funções malloc e free para alocar e liberar memória dinamicamente em C. Abordaremos o uso de sizeof, a verificação de ponteiros NULL e como evitar vazamentos de memória, com exemplos práticos e boas práticas.

Lido
Linguagem C

calloc e realloc

Esta aula aborda as funções calloc e realloc da biblioteca padrão C, explicando como alocar memória zerada e redimensionar blocos de memória dinamicamente. Inclui exemplos práticos, cuidados essenciais para evitar vazamentos e erros, e exercícios com respostas.

Lido
Linguagem C

Vazamentos e erros de memória

Esta aula aborda os principais erros de gerenciamento de memória em C: memory leaks, double free e use-after-free, com exemplos práticos e explicações detalhadas. Também é apresentada uma visão geral do Valgrind, ferramenta essencial para detectar esses problemas. Ao final, o aluno terá exercícios para consolidar o aprendizado.

Lido
Linguagem C

Arrays dinâmicos

Nesta aula, você aprenderá a criar e gerenciar arrays dinâmicos em C utilizando alocação na heap, redimensionamento com realloc, matrizes dinâmicas e liberação de memória. O conteúdo aborda desde a alocação com malloc até boas práticas para evitar vazamentos de memória.

Lido
Linguagem C

Structs e ponteiros

Nesta aula, você aprenderá a combinar structs e ponteiros em C, incluindo o operador seta (->), alocação dinâmica de structs na heap e passagem eficiente de structs para funções. Exemplos práticos demonstram como manipular structs de forma flexível e econômica em memória.

Lido
Linguagem C

Arrays e ponteiros na prática

Esta aula explora a relação entre arrays e ponteiros em C, focando no decay de arrays para ponteiros, situações onde eles diferem, e o comportamento do operador sizeof. Inclui exemplos práticos para solidificar o entendimento.

Lido
Linguagem C

Ponteiros pendentes e selvagens

Nesta aula, você aprenderá sobre ponteiros pendentes (dangling pointers) e selvagens (wild pointers) em C, dois tipos comuns de erros que podem levar a comportamentos imprevisíveis e falhas de segurança. Veremos como eles ocorrem, exemplos práticos e boas práticas para evitá-los, garantindo código mais seguro e confiável.

Lido
Linguagem C

Structs aninhadas e arrays de structs

Nesta aula, exploramos structs aninhadas (structs dentro de structs) e arrays de structs em C. Aprendemos a declarar, inicializar e acessar esses tipos de dados compostos, além de discutir casos de uso comuns. Por meio de exemplos práticos e exercícios, consolidamos o entendimento de como organizar dados hierárquicos e coleções de registros.

Lido
Linguagem C

Unions

Esta aula explica o conceito de unions em C, estruturas que compartilham memória entre seus membros, permitindo economizar espaço e interpretar um mesmo bloco de memória de diferentes formas. São abordados desde a definição e sintaxe até casos de uso práticos e cuidados essenciais para evitar erros comuns.

Lido
Linguagem C

O pré-processador

O pré-processador é uma etapa fundamental da compilação em C, responsável por manipular o código-fonte antes da compilação propriamente dita. Esta aula aborda as diretivas mais comuns (#include, #define), o funcionamento do pré-processador e os estágios de compilação, com exemplos práticos.

Lido