• Viernes 8 de Noviembre de 2024, 23:19

Autor Tema:  Vectores En Funciones  (Leído 994 veces)

solarin

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Vectores En Funciones
« en: Lunes 21 de Agosto de 2006, 15:33 »
0
Tengo declarada una funcion para calcular el checkSum de un vector:
Código: Text
  1.  
  2. int GetCheckSum(unsigned char *msg)
  3. {
  4.     //Calcular Checksum
  5.     return checkSum;
  6. }
  7.  
  8.  

Esta la funcion la llamo desde diferentes sitios, el problema es que cada vez le paso un vector de tamaño diferente:

Código: Text
  1.  
  2. void function1()
  3. {
  4. unsigned char msg[10];
  5. int checksum;
  6. msg[0] = 1;
  7. msg[1] = 23;
  8. .
  9. .
  10. .
  11. msg[9] = 4;
  12. checksum = GetCheckSum(unsigned char &msg);
  13.  
  14. }
  15.  
  16. void function2()
  17. {
  18. unsigned char msg[4];
  19. int checksum;
  20. msg[0] = 1;
  21. msg[1] = 23;
  22. .
  23. .
  24. .
  25. msg[3] = 4;
  26. checksum = GetCheckSum(unsigned char &msg);
  27. }
  28.  
  29. void function3()
  30. {
  31. unsigned char msg[55];
  32. int checksum;
  33. msg[0] = 1;
  34. msg[1] = 23;
  35. .
  36. .
  37. .
  38. msg[54] = 4;
  39. checksum = GetCheckSum(unsigned char &msg);
  40. }
  41.  
  42.  
  43.  


Lo cual me da el siguiente error al compilar:

m:\driver\cms_comm.cpp(487) : error C2664: 'getCheckSum' : cannot convert parameter 1 from 'unsigned char (*)[6]' to 'unsigned char *'

Como tengo que declarar la funcion o su llamada para poder pasar vectores de diferente tamaño?  Gracias.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Vectores En Funciones
« Respuesta #1 en: Lunes 21 de Agosto de 2006, 15:54 »
0
Podes hacerlo asi:

Código: Text
  1.  
  2. checksum = GetCheckSum(msg);
  3.  
  4.  

y asi:

Código: Text
  1.  
  2. checksum = GetCheckSum(&msg[0]);
  3.  
  4.  

El codigo generado es el mismo; obviamente tendras que establecer un metodo por el cual conocer el tamaño del bloque a procesar ... te recomiendo un segundo parametro a la funcion.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

solarin

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Vectores En Funciones
« Respuesta #2 en: Lunes 21 de Agosto de 2006, 16:06 »
0
gracias, usare un parametro para el tamaño.