Vector dinamico por referencia
No entiendo que puedo estar haciendo mal en este codigo para que no se me ejecute bien. Ruego que me orienten por que puede ser:
#include <stdio.h>
#include <stdlib.h>
struct prueba
{
int num;
};
void rellena(struct prueba *vectorprueba)
{
vectorprueba=(struct prueba *)malloc(5*sizeof(struct prueba));
for(int i=0;i<5;i++)
{
vectorprueba[i].num=i;
}
}
int main(void)
{
struct prueba *vectorprueba=NULL;
rellena(vectorprueba);
for(int i=0;i<5;i++)
{
printf("%i\n",vectorprueba[i].num);
}
system("PAUSE");
return 0;
}
Gracias!
#include <stdio.h>
#include <stdlib.h>
struct prueba
{
int num;
};
void rellena(struct prueba *vectorprueba)
{
vectorprueba=(struct prueba *)malloc(5*sizeof(struct prueba));
for(int i=0;i<5;i++)
{
vectorprueba[i].num=i;
}
}
int main(void)
{
struct prueba *vectorprueba=NULL;
rellena(vectorprueba);
for(int i=0;i<5;i++)
{
printf("%i\n",vectorprueba[i].num);
}
system("PAUSE");
return 0;
}
Gracias!
Hola, espero ayudarte con esto:
struct prueba
{
int num;
};
void rellena(struct prueba **vectorprueba)
{
*vectorprueba=(struct prueba *)malloc(5*sizeof(struct prueba));
}
int main(void)
{
struct prueba *vectorprueba=NULL;
rellena(&vectorprueba);
for(int i=0;i<5;i++)
{
printf("%i\n",vectorprueba[i].num);
}
system("PAUSE");
return 0;
}
La verdad es que me gustaría saber para que necesitas hacer esto porque es posible que se pueda llevar a cabo de una forma más óptima.
Un saludo!
struct prueba
{
int num;
};
void rellena(struct prueba **vectorprueba)
{
*vectorprueba=(struct prueba *)malloc(5*sizeof(struct prueba));
}
int main(void)
{
struct prueba *vectorprueba=NULL;
rellena(&vectorprueba);
for(int i=0;i<5;i++)
{
printf("%i\n",vectorprueba[i].num);
}
system("PAUSE");
return 0;
}
La verdad es que me gustaría saber para que necesitas hacer esto porque es posible que se pueda llevar a cabo de una forma más óptima.
Un saludo!