Criando Variáveis de Struct
Parte da seção Logic & Flow do Journey de C da Coddy — lição 40 de 63.
Depois de declarar um tipo struct, você pode usá-lo para criar variáveis reais que armazenam dados. Criar uma variável struct funciona exatamente como declarar qualquer outra variável em C - você especifica o tipo de dado seguido pelo nome da variável.
A sintaxe para criar uma variável struct é:
struct StructureName variableName;Por exemplo, usando a struct Point da lição anterior:
struct Point p1;
struct Point p2;Isso cria duas variáveis, p1 e p2, ambas do tipo struct Point. Cada variável possui sua própria cópia separada dos membros x e y definidos na struct.
Você pode criar quantas variáveis struct precisar, assim como faria com tipos integrados como int ou float. Cada variável struct é independente e pode conter valores diferentes em seus membros. Uma vez criadas, essas variáveis estão prontas para armazenar dados de coordenadas de forma organizada.
Desafio
FácilCrie um programa em C que demonstre a criação de múltiplas variáveis struct de diferentes tipos. Seu programa deve:
- Definir uma
structchamadaRectanglecom os seguintes membros:- Um inteiro
width - Um inteiro
height
- Um inteiro
- Definir uma
structchamadaStudentcom os seguintes membros:- Um inteiro
id - Um array de caracteres
namecom tamanho 30 - Um float
gpa
- Um inteiro
- Na função main, crie as seguintes variáveis struct:
- Duas variáveis
Rectanglechamadasrect1erect2 - Três variáveis
Studentchamadasstudent1,student2estudent3
- Duas variáveis
- Imprimir mensagens de confirmação para cada variável criada neste formato exato:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- Imprimir o número total de variáveis struct criadas no formato:
Total struct variables created: 5 - Imprimir o uso de memória para cada tipo no formato:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
Este desafio testa sua habilidade de definir múltiplos tipos de struct e criar diversas variáveis de cada tipo. Cada variável struct é independente e possui seu próprio espaço de memória, demonstrando como as structs podem ser usadas para organizar diferentes tipos de dados em seus programas.
Folha de consulta
Para criar variáveis struct, use a mesma sintaxe que a declaração de outras variáveis:
struct StructureName variableName;Exemplo de criação de múltiplas variáveis struct:
struct Point p1;
struct Point p2;Cada variável struct é independente e possui sua própria cópia separada de todos os membros definidos na struct. Você pode criar quantas variáveis struct forem necessárias, assim como os tipos integrados.
Experimente você mesmo
#include <stdio.h>
int main() {
// TODO: Defina sua struct Rectangle aqui
// TODO: Defina sua struct Student aqui
// TODO: Crie as variáveis das structs aqui
// TODO: Imprima mensagens de confirmação para cada variável criada
// TODO: Imprima o número total de variáveis de struct criadas
// TODO: Imprima o uso de memória para cada tipo de struct usando sizeof()
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Logic & Flow
1Fundamentos de Ponteiros
O que é um Ponteiro?Declarando PonteirosO Operador de Endereço (&)O Operador de Desreferência (*)Ponteiros NULLRecapitulação: Fundamentos de Ponteiros4Projeto: Utilitário de Texto Simples
Visão Geral do ProjetoContando Caracteres7Estruturas (structs)
O que é uma Struct?Declarando uma StructCriando Variáveis de StructAcessando Membros de uma StructInicializando StructsRecapitulação: Struct de Dados de Aluno2Ponteiros e Arrays
Nomes de Arrays como PonteirosElementos de Array - PonteirosAritmética de PonteirosComparando PonteirosRecapitulação: Percorrendo Arrays com Ponteiros5Ponteiros e Funções
Passagem por ValorPassando Ponteiros para FunçõesModificando Variáveis via PonteirosUm Exemplo Clássico: SwapPassando Arrays para FunçõesRecapitulação: Ponteiros como Argumentos3Arrays de Caracteres e Strings
Strings como Arrays de charO Terminador NuloEntrada de Strings com scanfUsando strlen()Usando strcpy()Usando strcat()Usando strcmp()Recapitulação: Funções Básicas de Strings6Gerenciamento de Memória
Memória Stack vs. HeapAlocação Dinâmica - malloc()Usando sizeof() para AlocaçãoVerificando Falhas de AlocaçãoLiberando Memória com free()Alocando com calloc()Recapitulação: Array Dinâmico9Projeto: Cadastro Simples de Contatos
Projeto: Definir a Struct de ContatoFunção para Criar um Contato