[C con Clase] averiguar largo de un vector
Pedro
sr.whiteskull en hotmail.com
Sab Sep 4 15:59:25 CEST 2010
Dentro de la funcion no puedes, pues de momento el tamaño del argumento no está definido... De todas formas la función que estás haciendo ya existe en el estándar de C, memcpy() , copiando cualquier tipo de dato, ya que copia los bytes especificados de un lugar de la memoria a otro. Acuérdate que para obtener la memoria donde está ubicada la variable, debes poner un ampersand '&' delante de ésta, luego para averiguar el tamaño de ésta en bytes, sólo debes poner sizeof(varible) y listo.
#include<string.h> // memcpy
#include<stdlib.h> // system
#include<stdio.h> // printf, etc..
void copiarvector(int vectorDestino[],int vectorOrigen[],int tamanio)
{
printf("\n%d\n",tamanio);
for(int i=0;i<tamanio;i++) vectorDestino[i]=vectorOrigen[i];
}
int main()
{
int a[]={1,2,3,4,5},b[5];
memcpy(&b,&a,sizeof(a));//Hace lo mismo
copiarvector(b,a,sizeof(a)/sizeof(a[0]));
for (int i=0;i<sizeof(a)/sizeof(a[0]);i++)
printf("b[%d]=%d\n",i,b[i]);
system("PAUSE");
return 0;
}
From: cristian garrido salas
Sent: Saturday, September 04, 2010 2:55 AM
To: Lista de correo sobre C y C++
Subject: [C con Clase] averiguar largo de un vector
Estimados, haciendo una funcion para la copia de uh vector, me nace la duda de como saber el largo de los vectores. esto para no tener que poner otro parámetro mas a la función
lo que he hecho es ocupar sizeof pero me entrega el valor del tamaño de un solo int
#include<stdio.h>
void copiarvector(int a[],int b[])
{
int n=(sizeof(a))/sizeof(int);
printf("%d",n);
for(int i=0;i<n;i++)
b[i]=a[i];
}
main()
{
int a[5]={1,2,3,4,5},b[5];
copiarvector(b,a);
}
Ojala puedan ayudarme, gracias
Saludos
--------------------------------------------------------------------------------
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100904/5aee21af/attachment.html>
Más información sobre la lista de distribución Cconclase