[ Foro de C ]
Cuando intento guardar varias cadenas en un arreglo de apuntadores no me deja, mas sin envargo, en un apuntador solo si me deja pero no se porque:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 int main(int argc, char *argv[])
6 {
7 char str2[] = "Hola\tMundo";
8 char str3[] = "\t";
9 char *str1;
10 char (*token)[9];
11 int j;
12
13 for (j = 1, str1 = str2; ; j++, str1 = NULL) {
14 token[j] = strtok(str1, str3);
15 if (token[j] == NULL)
16 break;
17 printf("%d: %s\n", j, token[j]);
18 }
19
20 exit(EXIT_SUCCESS);
21 }
output:
gcc main.c -o m.out
main.c: In function ‘main’:
main.c:14:18: error: assignment to expression with array type
token[j] = strtok(str1, str3);
Y si dejo de intentar guardar en un arreglo de apuntadores y solo lo hago en un apuntador normal corre sin problema:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 int main(int argc, char *argv[])
6 {
7 char str2[] = "Hola\tMundo";
8 char str3[] = "\t";
9 char *str1;
10 char *token;
11 int j;
12
13 for (j = 1, str1 = str2; ; j++, str1 = NULL) {
14 token = strtok(str1, str3);
15 if (token == NULL)
16 break;
17 printf("%d: %s\n", j, token);
18 }
19
20 exit(EXIT_SUCCESS);
21 }
output:
./m.out
1: Hola
2: Mundo
por error lo puse 2 veces, podrían eliminar una pregunta por favor.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)