Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 71.612
  • Views Posts: 542.470
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

C - Programa che dato un Vettore A lui crea un Vettore B che contiene gli indirizzi di memoria di A

C - Programa che dato un Vettore A lui crea un Vettore B che contiene gli indirizzi di memoria dei elementi di A

Mi sono divertito a creare un programma che dato un Vettore A lui crea un Vettore B che si salva gli indirizzi di memoria dei elementi di A 

Scopo del Programma :

Leggi elementi e Carica il Vettore A:

a[0] = 3
a[1] = 4
a[2] = 5
a[3] = 6

---------- Scrivi celle di memoria del Vettore A---------------

Puntatore a[0] = 1638204
Puntatore a[1] = 1638208
Puntatore a[2] = 1638212
Puntatore a[3] = 1638216

-------- Copia Celle di Memoria del Vettore A nel Vettore B -------

b[0] = 1638204
b[1] = 1638208
b[2] = 1638212
b[3] = 1638216


Codice C del Programma :

/*
Programma che caricato un Vettore A con N elementi, crea un Vettore B che contine come valori l'indirizzo di cella di memoria  dei elementi del Vettore A

Argomenti da ricordare :

printf e scanf

%d ==> Dati di tipo Intero (int)
%lf ==> Dati di tipo Dobble (Dooble) Numero Reale Lungo con la virgola
%l ==> Dati di tipo Long (long) Intero Lungo
%f ==> Dati di tipo Float (float) Numero Reale Corto con la virgola
%c ==> Dati di tipo Carattere (char)
%s ==> Dati di tipo Stringa


*/


#include <stdio.h>

#define MAX 5
#define TRUE 1
#define FALSE 0


void Leggi (int a[MAX] , int n );
void Scrivi(int a[MAX], int n);
void Scrivi_Puntatori(int a[MAX], int n);
void Carica_Array_Puntatore(int a[], int n);

int main(int argc, char *argv[]){

       
int vettore [MAX];

        printf
("Leggi un Vettore e Crea un'altro vettore che contine i valori dei Memoria : \n\n ");

       
Leggi (vettore, 4);

       
//Scrivi (vettore, 4);

        printf
("\n ---------- Scrivi celle di memoria del Vettore A--------------- \n");
       
Scrivi_Puntatori (vettore,4);
       
       
Carica_Array_Puntatore (vettore,4);

return 0;
}

void Leggi(int a[MAX], int n){
int i ;
for(i = 0 ;  i < n;  i++){ printf("a[%d] =  ",i); scanf("%d",&a[i]);}
}

void Scrivi(int a[MAX], int n){
int i ;
for(i = 0 ;  i < n;  i++){ printf("a[%d] =  %d \n",i,a[i]);}
}

void Scrivi_Puntatori(int a[MAX], int n){
int *puntatore, i;
       
for(i = 0 ;  i < n;  i++){
                puntatore
= &a[i];
                printf
("Puntatore a[%d] = %d \n",i, puntatore);
       
}
}

void Carica_Array_Puntatore(int a[], int n){

int *p, i , *b[n];

       
for(i = 0 ;  i < n;  i++){
                p
= &a[i];
                b
[i] = p;
       
}
        printf
("\n -------- Copia Celle di Memoria del Vettore A nel Vettore B ------- \n");

       
for(i = 0 ;  i < n;  i++){      
                printf
("b[%d] =  %d \n",i,b[i]);
       
}

}
Categoria: C / C++
sabato, 09 giu 2012 Ore. 15.01
Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003