Você está aqui: C++ ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como alocar memória dinâmica usando o operador new do C++Quantidade de visualizações: 12194 vezes |
Em algumas situações precisamos alocar memória dinamicamente. Em C++ isso é feito com o auxílio do operador new. Este operador permite alocar uma determinada quantidade de bytes, alinhados de forma a representar o objeto para o qual queremos reservar memória. Veja um exemplo de código no qual alocamos memória dinâmica para uma variável do tipo int: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> using namespace std; int main(int argc, char *argv[]){ // aloca memória para um objeto do tipo int int *ponteiro = new int; // vamos definir o valor para o objeto recém-alocado *ponteiro = 20; // vamos exibir seu valor cout << *ponteiro << endl; // vamos liberar a memória delete ponteiro; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Note que aqui a memória foi alocada e guardada em um ponteiro. Veja também o uso do operador delete para liberar a memória alocada. Isso evita os vazamentos de memória tão frequentes em aplicações que lidam com a memória dinâmica. É claro que este não é o exemplo mais prático. Qual a vantagem de se alocar memória para um int? Declarar uma variável teria sido mais eficiente. A alocação de memória dinâmica é mais útil quando estamos lidando com objetos mais complexos que os tipos básicos. Alguns exemplos envolvem a criação de objetos de classes, matrizes, estruturas de dados, etc. Veja um exemplo no qual temos uma declaração de uma classe chamada Cliente e em seguida alocamos memória para uma instância desta classe: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> #include <string> using namespace std; // declaração da classe Cliente class Cliente{ public: Cliente(); string obterNome(); void definirNome(string); private: string nome; }; // implementação dos métodos da classe Cliente::Cliente(){} // construtor vazio // obtém o nome do cliente string Cliente::obterNome(){ return this->nome; } // define o nome do cliente void Cliente::definirNome(string nome){ this->nome = nome; } int main(int argc, char *argv[]){ // aloca memória para um objeto da classe Cliente Cliente *c = new Cliente(); // vamos definir o nome do cliente c->definirNome("Osmar J. Silva"); // vamos exibir o nome do cliente cout << c->obterNome() << endl; // vamos liberar a memória usada delete c; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Nome do cliente: Osmar J. Silva |
Link para compartilhar na Internet ou com seus amigos: |
C++ ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é primo em C++Quantidade de visualizações: 2936 vezes |
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos. É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par. Veja agora um código C++ completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]){ int numero; bool primo = true; // vamos solicitar um número inteiro positivo cout << "Informe um número inteiro positivo: "; cin >> numero; // o número é negativo? if(numero < 0){ cout << "Número inválido.\n\n"; } // é 0 ou 1? else if((numero == 0) || (numero == 1)){ cout << "Número válido, mas não é primo.\n\n"; } // passou até aqui. Vamos testar se o número é primo else{ for (int i = 2; i <= (numero / 2); i++){ // se passar no teste, não é primo if (numero % i == 0) { primo = false; break; } } if(primo){ cout << "O número informado é primo\n\n"; } else{ cout << "O número informado não é primo\n\n"; } } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Informe um número inteiro positivo: 9 O número informado não é primo |
C++ ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Vetores e matrizes em C++ - Como passar vetores e matrizes para as suas funções C++Quantidade de visualizações: 11999 vezes |
Muitas vezes precisamos passar um vetor ou uma matriz C++ para nossas funções. O trecho de código abaixo mostra como isso é feito. Observe que a passagem de uma matriz para uma função é feita por referência, ou seja, qualquer alteração nos valores da matriz dentro do método será refletida na matriz original:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <iostream> using namespace std; // função usada para exibir os valores // da matriz void exibir_matriz(int matriz[], int quant) { for(int i = 0; i < quant; i++){ cout << matriz[i] << endl; } } int main(int argc, char *argv[]) { // cria uma matriz com 5 inteiros int valores[] = {54, 3, 89, 6, 1}; // passa a matriz para a função exibir_matriz() // veja que temos que enviar também a quantidade // de elementos exibir_matriz(valores, 5); system("PAUSE"); // pausa o programa return 0; } Ao executar este código C++ nós teremos o seguinte resultado: 54 3 89 6 1 |
C++ ::: Dicas & Truques ::: Strings e Caracteres |
Como pesquisar uma substring em uma string C++ usando o método find() e retornar o índice do primeiro caractereQuantidade de visualizações: 10149 vezes |
Nesta dica mostrarei como podemos usar a função find() da classe String do C++ para pesquisar parte de uma palavra, frase ou texto. Se a substring for encontrada, o índice do seu primeiro caractere é retornado. Caso contrário o valor npos é retornado. Veja o código C++ completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // vamos criar uma string string frase = "Gosto de Java e C++"; cout << "A string informada foi: " << frase << endl; // agora vamos checar a existência da substring size_t pos = frase.find("Java"); // a substring foi encontrada? if(pos == string::npos){ cout << "A substring nao foi encontrada." << endl; } else{ cout << "A substring foi encontrada" << " no indice " << pos << endl; } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: A string informada foi: Gosto de Java e C++ A substring foi encontrada no indice 9 |
Vamos testar seus conhecimentos em JavaScript |
Na construção switch...case...default do JavaScript, em qual parte colocamos a expressão a ser avaliada? A) O JavaScript não possui switch...case B) switch C) case D) default Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética, Legislação e Entidades que regulamentam a profissão A diretriz mais importante para ser ético é: A) Não comprometer intencionalmente a integridade de outras pessoas com nossas ações. B) O que a empresa para a qual você trabalha estabelece como códigos de ética. C) O que seu supervisor e seus colegas dizem ser o correto. D) O que as organizações profissionais publicam sobre ética. E) A lei. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Perda de Carga Localizada, Acessórios de Tubulação Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal? Selecione a resposta: A) 1,16 m. B) 0,61 m. C) 0,06 m. D) 1,22 m. E) 0,00 m. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Empuxo O princípio elaborado por Arquimedes diz que a força de flutuação sobre um corpo submerso em um fluido é igual ao peso do fluido deslocado pelo corpo. À luz desse princípio, calcule a carga total que um navio no mar (1,03g/cm3) pode carregar sem afundar, supondo que ele tem um volume de 200m3. A) 150.000kg. B) 190.000kg. C) 106.000kg. D) 200.000kg. E) 206.000 kg. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Dimensionamento de Redes de Distribuição de Água Qual a vazão necessária na tubulação que sai do reservatório em uma rede ramificada para um loteamento com a seguinte configuração, considerando que cada habitante consome 400 L/dia? A) 8,67 L/s. B) 16,42 L/s. C) 2,63 L/s. D) 17,33 L/s. E) 6,96 L/s. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |