Hola chicos,primeramente al ser mi primer post presentarme mi nombre es rosario y he estado viendo C por mi cuenta pero al llegar a punteros me he detenido ya que se me han generado dudas..
Por ejemplo,
Cuando en el enunciado de un ejercicio me dicen:
Crear una función a la que se le pasará una cadena de caracteres de cualquier
longitud o " Crear una función que copie el contenido de un primer vector de flotantes
en otro segundo con el mismo número de elementos. ",en Relacion al numero de elementos yo realize los ejercicios usando despues del printf en el cual el usuario indique la longitud lo siguiente:
float *vec=new float[l]; // caso 1 donde l es la longitud..
char *cad = new char[l+1];// le puse el mas uno por el /0 ..
claro que luego use un delete para liberar la memoria reservado delete []vec;
Pero no se si hago bien..
os pongo el codigo del primer ejercicio para que porfavor me deis vuestra opinion..
Salu2
/*5. Crear una función que copie el contenido de un primer vector de flotantes
en otro segundo con el mismo número de elementos. La función debe ser válida para
cualquier par de vectores con el mismo número de elementos. Genera el
programa principal para poder ejecutar la función creada.*/
#include<stdio.h>
#include<string.h>
void copiar_valor(float *,int,float *);
void print_vector(float *,int,float *);
void main(){
int l=0,i=0;
do{
printf("Introduce la longitud del primer vector:\n"); }while(l<0);
printf("La longitud del segundo vector sera la misma\n"); float *vec=new float[l];
float *vec2=new float[l];
for(i=0;i<l;i++){
printf("inserta valores para el primer vector %d:",i
); }
copiar_valor(vec,l,vec2);
print_vector(vec,l,vec2);
delete []vec;
delete []vec2;
}
void copiar_valor(float *vector,int size,float *vector2){
int i;
for(i=0;i<size;i++){
*(vector2+i) = *(vector+i);
}
}
void print_vector(float *vector,int size,float *vector2){
int j;
for(j=0;j<size;j++){
printf("%0.2f\n",*(vector2
+j
)); }
for(j=0;j<size;j++){
printf("\n%0.2f",*(vector
+j
));
}
}
..Mil gracias