Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DeIMachine en 13 Diciembre 2015, 16:16 pm



Título: [C++]Pequeño error al convertir tipos de variables
Publicado por: DeIMachine en 13 Diciembre 2015, 16:16 pm
Hola a todos, tengo un pequeño problema, en un struct he querido declarar una matriz de tipo char[3][80], el caso es que cuando la voy a utilizar en esta funcion:
Código
  1. Subtitulo definir (int num, int nLineas, char texto[][MAX_LONG_LINEA],  Tiempo t_inicio, Tiempo t_fin){
  2.    Subtitulo s;
  3.    s.numero=num;
  4.    s.numLineasTexto=nLineas;
  5.    s.texto=texto; //[color=red]ERROR AQUI[/color]
  6.    s.inicio=t_inicio;
  7.    s.fin=t_fin;
  8.    return s;
  9. }
  10.  
In function 'Subtitulo definir(int, int, char  texto(*)[80], Tiempo, Tiempo)':
error incompatible types in assignament of 'char (*)[80] to 'char [3][80]
He probado mil cosas para tratar de que me funcione como por ejemplo dandole a la matrz char texto de mi funcion filas pero me sigue poniendo el error, no se como la puedo convertir. Saludos



Título: Re: [C++]Pequeño error al convertir tipos de variables
Publicado por: ivancea96 en 13 Diciembre 2015, 18:01 pm
Si quieres trabajar con datos del tipo T[X][Y], coloca como parámetro de la función "char texto[3][MAX_LONG_LINEA]". Luego, tendrás que copiar los datos (con un par de bucles for anidados, por ejemplo) de una matriz a la otra.


Título: Re: [C++]Pequeño error al convertir tipos de variables
Publicado por: DeIMachine en 13 Diciembre 2015, 18:29 pm
¿No puede ser algo más simple? Es que como me extrañaba que no me den el numero de filas en el parametro, he probado a poner [3] sin repetir los bucles y me seguía saliendo el mismo error ahora intento lo de los bucles anidados, gracias.


Título: Re: [C++]Pequeño error al convertir tipos de variables
Publicado por: DeIMachine en 13 Diciembre 2015, 18:58 pm
Vale creo que asi esta bien:
Código
  1. for(int filas=0;filas<MAX_LINEAS;filas++){
  2.        for(int columnas=0;columnas<MAX_LONG_LINEA;columnas++){
  3.            s.texto[filas][columnas]=texto[filas][columnas];
  4.        }
  5.    }
  6.