Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2012, 22:45
pablomacri06
 
Fecha de Ingreso: noviembre-2012
Mensajes: 26
Antigüedad: 11 años, 5 meses
Puntos: 0
Error al pasar un arreglo Struc a una funcion. Lenguaje C#

Amigos esta pregunta va con caracter mas que urgente ya que mañana tengo el parcial y me esta dando error lograr lo siguiente!

Vale aclarar que trabajo con C y no con C++ y que el archivo con el que trabajo es de extencion *.cpp. Tambien me da error al compilar con windows o linux en ambos no puedo lograr lo que necesito...

Necesito pasar una estructura local al main, por referencia a otra funcion...
Basicamente yo declaro las cosas de la siguiente manera:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//==============ESTRUCTURA=================//
	struct datoscli {
		     	  int Monto;
   		   	 };

	struct datosreg {
		    	 struct datoscli datos[999];
		   	};
//===============FUNCIONES==================//
void Graba_Fact (struct datosreg *v[]);


int main()/*PRINCIPAL*/
{	
struct datosreg inforeg[2], *punterovector; //El puntero creo que debo usarlo para pasar la estructura, pero no se como.
.
.
.//bue aca va el resto del codigo...
.
//============Pasando Vector a funcion==============//

Graba_Fact(&inforeg); 

}//Fin Main

//Aca afuera deberia ir la funcion
void Graba_Fact (struct datosreg *v[])
{.
.....
......
}


Dejo el codigo completo para que tengan una mejor idea.
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


//==============ESTRUCTURA=================//
	struct datoscli {
		     	  int Monto;
   		   	 };

	struct datosreg {
		    	 struct datoscli datos[999];
		   	};
		   	
//===============FUNCIONES==================//
void Graba_Fact (struct datosreg *v[]);



int main()/*PRINCIPAL*/
{	


//==========Variables===============//
struct datosreg inforeg[2], *punterovector;

int codreg, numcli; 				//Variables de Codigo de Region y Numero de Cliente respectivamente. 
int band0=0,band1=0,band2=0; 			//Las banderas se usan en los Case del switch.
int Maxcli0=0, Maxcli1=0, Maxcli2=0;		//Numero de cliente con el MAximo monto.
int MaxMonto0=0, MaxMonto1=0, MaxMonto2=0;	//Monto Maximo correspondiente a region 1 - 2 y 3.





//==========Comienzo================//


system("cls");



printf ("Ingrese codigo de region (1 - 2 - 3) 0=SALIR:");
scanf ("%d",&codreg);
		while(codreg>0 && codreg<4)	{//0 Para SALIR
					printf("\nIngese Numero Cliente:");
					scanf ("%d",&numcli);
					printf("\nIngese Monto:");
					scanf("%d",&inforeg[codreg-1].datos[numcli].Monto);
						



						switch(codreg)//El switch se encarga de seleccionar el lugar donde guardar el maximo dependiente de la region.
							{
							case 1:								
								if(band0=0 || inforeg[0].datos[numcli].Monto > MaxMonto0) 		
								{	
									band0=1;
									Maxcli0=numcli;
									MaxMonto0=inforeg[0].datos[numcli].Monto;
								};break;
							



							case 2: 							
								if(band1=0 || inforeg[1].datos[numcli].Monto > MaxMonto1) 		
								{	
									band1=1;
									Maxcli1=numcli;
									MaxMonto1=inforeg[1].datos[numcli].Monto;
								};break;
							

							
							



							case 3:							
								if(band2=0 || inforeg[2].datos[numcli].Monto > MaxMonto2) 		
								{	
									band2=1;
									Maxcli2=numcli;
									MaxMonto2=inforeg[2].datos[numcli].Monto;
								};break;
							
								
							}
			
					
					printf ("\n\nIngrese PROXIMO codigo de region (1 - 2 - 3) 0=SALIR:");
					scanf ("%d",&codreg);			
				};//Fin While.

//============Pasando Vector a funcion==============//

Graba_Fact(&inforeg);

//===============Finalizando=================//

printf("\n\nLos mayores son:");
printf("\nCod Reg..........Nro.Cli..........Monto\n");

printf("....1..............%d..............%d\n",Maxcli0,MaxMonto0);
printf("....2..............%d..............%d\n",Maxcli1,MaxMonto1);		
printf("....3..............%d..............%d\n",Maxcli2,MaxMonto2);

printf("\n\n FIN \n\n\n");
return 0;
}/*FIN MAIN*/