quarta-feira, 12 de novembro de 2008

Alocação dinâmica de memória - C++

Existe uma classe de variáveis que são definidas quando o programa é compilado. Que são:
  • Variáveis globais/static (data segment)
  • Variáveis locais (stack)
Este tipo de alocação é muito rígido.
A linguagem C possui as funções malloc() e free() que permitem alocar memória durante a execução do programa numa área da memória designada por heap ou free store.
Em linguagem C++, existe uma forma mais simples de gerir a memória principal na área designada de free store, e mediante a utilização dos operadores new() e delete().

segunda-feira, 20 de outubro de 2008

Ficheiros binários

Nos ficheiros binários não é bem a representação lógica dos seus bytes em caracteres que está em causa, mas o armazenamento da informação no seu formato mais elementar, ou seja, em sequências de uns e zeros.

fwrite- funciona como o (
"fprintf"), escreve valores em binários para o ficheiro.
Linha 9, "fwrite"- código para escrever dados dentro do ficheiro.
"sizeof(int),5" - tamanho do
tipo inteiro, e digo que o tamanho é igual a 5.



fread- funciona como o ("fscanf"), ler valores em binários do ficheiro.




Linha 10, "fread"- código para ler valores dentro do ficheiro.
"sizeof(int),5" - tamanho do
tipo inteiro, e digo que o tamanho é igual a 5.






Manipulação de Ficheiros de texto em Linguagem C - leitura/escrita formatada

fprintf - Escreve dados no ficheiro num formato indicado.

Linha 26- O código "fprintf" vai introduzir os dados no ficheiro.

fscanf - Lê dados do ficheiro no formato indicado.Linha 16- O código "fscanf" vai ler os dados no ficheiro.

terça-feira, 7 de outubro de 2008

Passagem de parâmetros na linha de comandos - Linguagem C

argc- Conta o número de argumentos que foram passados pela linha de comandos.

argv-
É um array de strings que contém os caracteres que formam cada uma das strings passadas a partir da linha de comandos.

Este programa conta o numero de palavras passado por parâmetros.
Ao executar o programa:

./lixo Joao Silva 14

argc=4
  • argv[0] armazena a string “./lixo”
  • argv[1] armazena a string “Joao”
  • argv[2] armazena a string “Silva”
  • argv[3] armazena a string “14″

Manipulação de Ficheiros de texto em Linguagem C - leitura/escrita caracter a caracter

fgetc e fputc:
fgetc - lê um caracter de um ficheiro.



Reparem que na linha 9 lê um caracter. caracter=fgetc(fp); E de seguida é exibida na consola, como mostra na linha 10.


fputc-escreve um caracter num ficheiro.



Na linha 17, vai colocar uma letra no ficheiro.
fputc(letra, fp);
Reparem que na linha 16: fp=fopen(argv[1], "w"); o ficheiro é aberto em modo de escrita.

Manipulação de Ficheiros de texto em Linguagem C - fopen e fclose

- Abertura de ficheiro: fp=fopen(“texto.txt”,”r”);

FP-é uma variável em que consiste em dizer ao programa como ter acesso ao ficheiro.
Para poder abrir também o programa é necessário indicar o nome do ficheiro
(“texto.txt”) e o modo "r". Existem vários tipos de modo. "r" apenas ler, "w" apenas escrita, "a+" Leitura e escrita e entre outros. Mas estes são os mais usados.
E depois é necessário fechar o programa:

-Fecho do ficheiro: fclose(fp);
vai eliminar a ligação criada entre o programa e a variável associada ao ficheiro, e garante que todos os dados são gravados antes do fecho de ficheiro. Exemplo de programa:





segunda-feira, 2 de junho de 2008

Apontadores


Bem, hoje aprendi na aula o conceito de apontadores. Um apontador é uma variável como qualquer outra, mas que é utilizada para armazenar o endereço de memória de outra variável. No início parece um pouco confuso mas depois com muita explicação e exemplos, aprende-se bem. No início, não percebia muito bem, mas o meu professor lá com os exemplos dele ajudou-me e eu consegui entender. Depois apliquei o meu conhecimento neste pequeno programa. (ptr=pointer=variavel), serve para apontar para as variáveis. Por exemplo: "*ptr_a;" : este apontador vai chamar a variável "a". Para já, sobre apontadores sei poucas coisas. Mas vou escrever mais coisas e mais exemplos para que vocês percebam como isto funciona!!!