[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