#include <stdio.h>
#include <stdlib.h>
void
getstr(char *&retstr)
{
char *tmp = (char *)malloc(25);
strcpy(tmp, "hello,world");
retstr = tmp;
}
int
main(void)
{
char *retstr;
getstr(retstr);
printf("%s\n", retstr);
return 0;
}
gcc
no compilaría este archivo, pero después de agregar #include <cstring>
podría usar g ++ para compilar este archivo fuente.Pasando el argumento del puntero por referencia bajo C?
El problema es: ¿el lenguaje de programación C admite el paso del argumento del puntero por referencia? Si no, ¿por qué?
Gracias.
No está relacionado con su pregunta, pero por curiosidad, ¿cuál es el caso de uso para pasar un puntero como referencia? –
@Tristram: si desea que la función pueda modificar el puntero, y hacer que la modificación se propague más allá del alcance de la función. –
Si desea realizar un malloc de cadenas en una función que no libera esa memoria, podría considerar usar valgrind o una herramienta equivalente para detectar fugas de memoria. –