Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jomag

#1
Si eso es lo que decía, lo único que me pasaba es que no había reservado espacio para los punteros a char y si para cada uno de los elementos char, es decir había hecho probes = (char *) malloc( 51 * sizeof(char) ); pero no probes = (char **) malloc( 10 * sizeof (char *) );. Finalmente me di cuenta, de todos modos muchas gracias, no había contemplado la posibilidad de comprobar si malloc da error, y como no me quiero parecer a Microsoft lo haré, muchas gracias! :)
#2
Bueno, pues ya he resuelto el problema :¬¬, me ha costado días pero me he dado cuenta cuando os pido ayuda, la historia se repite. El problema es que solo había reservado espacio para cada columna del array de cadenas, pero no para cada fila. Una vez reservado espacio no hay problema  ;-)
#3
Hola, tengo el siguiente código en el que quiero meter en la variable request una cadena constante y la cadena de cada uno de los elementos de mi array de cadenas. Para ello itero mediante un for y hago uso de sprintf, el problema es que solo me lo hace una vez, para el primer elemento de mi array. El array ya esta inicializado con cadenas previamente mediante la funcion getcadenas(). Os dejo el código:

char request[45555];
char **probes;
int i;

probes=getcadenas();


for(i=0; i<5;i++){
sprintf(request,"%sConstante", probes[i]);
printf("%s", request);
}


Espero me puedan ayudar :)
#4
Solucionado, tenia que reservar espacio para el array de punteros:

         probes = malloc((strlen(buf)+1) * sizeof(char));
#5
Programación C/C++ / Ayuda con fgets y arrays
22 Enero 2014, 20:14 PM
Hola, estoy intentando de escribir código para almacenar cada linea de un fichero en una array de punteros de cadenas. Para leer cada linea del fichero utilizo la función fgets y después asigno cada linea a una posición de mi array de punteros cadena. Si pudierais echarle un vistazo os lo agradeceria mucho, porque mi problema es que todas las posiciones de mi array de punteros acaba con la ultima linea del fichero, es decir sobrescribe todas las posiciones con la ultima linea. Os dejo el codigo:

int parse_probes() {

FILE* pf;
char buf[100];
char *probes[100];
int i;

if ((pf = fopen(
"/archivo", "r"))
== NULL) {
puts("Error abriendo archivo");
exit(1);
}
for (i = 0; i < 10; i++) {
if (fgets(buf, MX, pf) != NULL) {
probes[i] = buf;
printf("%d %s %s \n", i, probes[i], probes[0]);

}
}
fclose(pf);
return 0;

}