n = strlen(oids);
s= malloc(n+1);
memmove(s, oids, n);
s[n] = '\0';
o recreaste la string?
--
Federico G. Benavento
> [( 1.3.6.1.2.1.1.2.0) (1.3.6.1.4.1.99.1.1.3.28)]
--
Rodolfo García "kix"
loids = (char**) malloc(sizeof(char*) * sess->maxoids);
noid = getfields(strdup(oids), loids, sess->maxoids, 0, ",");
y luego no se te olvide hacer un free de loids.
gabi
PD: partiendo de la base de que oids es un string terminado en \0.
¿puedes poner un ejemplo de lo que haces?, a mi a simple vista me
parece un poco salvaje :-? igual es que no lo entiendo bien :-?.
gabi
--
Rodolfo García "kix"
a mi esas cosas personalmente no me gustan mucho, hacen el programa
mas dificil de leer. si no hay mas remedio :-D
gabi
con el hilo de los "errores" de 9fans parece mentira que pongas esas cosas :-D
Yo lo uso en estos casos:
int
fun(void)
{
char *a;
char *b;
char *c;
int ret = -1;
a = malloc(Alen);
b = malloc(Blen);
c = malloc(Clen);
....
if(auxfun1(a,b,c) < 0)
goto end;
....
if(auxfun2(a,c) < 0)
goto end;
...
if(auxfun3(a,b) < 0)
goto end
...
ret = 1;
end:
free(a);
free(b);
free(c);
return ret;
}
En caso de que haya error en medio de la función, nunca se
te pasa hacer el free. No es tan bruto, no hay código espagueti
porque todos los gotos van al final, reduce el código, e incluso
lo hace más legible. De todas formas, para gustos, los colores.
q.