¿Alguien puede explicar por qué estoy obteniendo un error de segmentación en el siguiente ejemplo?Fallo de segmentación al utilizar strtok_r
#include <stdio.h>
#include <string.h>
int main(void) {
char *hello = "Hello World, Let me live.";
char *tokens[50];
strtok_r(hello, " ,", tokens);
int i = 0;
while(i < 5) {
printf("%s\n", tokens[i++]);
}
}
Gracias una tonelada :) –
Este ejemplo me da un segfault en la línea printf. El token de impresión de gdb muestra 0xffffffffffffdad0 También recibe estas dos advertencias cuando compilo proj1.c: 33: 2: advertencia: declaración implícita de la función 'strtok_r' [-Wimplicit-function-declaration] proj1.c: 33: 14: advertencia: asignación hace puntero desde entero sin un molde [habilitado por defecto] –
schwiz
Lo siento, soy un novato, ¿por qué no debería ser 'char * ptr = Hola;' con mayúscula H? Además, la respuesta de Alok dice que la primera vez que el primer parámetro necesita ser "tokenizado" y luego las llamadas subsiguientes debe ser NULO, pero parece que tu ejemplo simplemente lo llama de una sola manera en el ciclo while. Gracias por el código btw –