Hola, como les va? Voy directo al grano. No logro conseguir que malloc se aplique también a la variable que paso por referencia, solo lo hace dentro de la función. Seguramente sea una tontería, como poner o sacar un '*', pero no lo logro ver.
Código C:
Ver originalvoid change_value(char **buffer)
{
buffer
= malloc(2 * sizeof(char *));
}
int main(int argc, char **argv)
{
char **buffer = NULL;
change_value(buffer);
printf("%s, %s\n", buffer
[0], buffer
[1]); // <- Segmentation fault
return 0;
}
Y pasando un puntero, tampoco:
Código C:
Ver originalvoid change_value(char ***buffer)
{
*buffer
= malloc(2 * sizeof(char *));
}
int main(int argc, char **argv)
{
char **buffer = NULL;
change_value(&buffer);
printf("%s, %s\n", buffer
[0], buffer
[1]);
return 0;
Por supuesto si malloc lo aplico fuera de la función corre perfectamente.
Gracias.