problemas con punteros.
Publicado por lnf0904 (2 intervenciones) el 13/08/2001 14:13:22
Hola a todos soy nuevo en este foro, espero que podais ayudarme...
Tengo dos estructuras anidadas como sigue (solo muestro los campos necesarios para evitar confusiones) :
typedef struct _linea
{
char * textoLinea; /* texto del shape */
}linea;
struct _lista
{
char ** strings; /* contendra todos las lineas de texto */
linea * fila; /* apuntará a un array de tipo linea, un
elemento por linea */
};
typedef struct _lista lista;
y la funcion:
-------------
int extraerLineas(char ** vectorStrings, linea * lineasLista);
pasandole los argumentos como sigue:
extraerLineas(listaCmp -> strings,listaCmp -> fila);
siendo "listaCmp" de tipo lista.
"vectorString" es un array de cadenas, lo que pretendo en asignar la direccion de cada una de las lineas de "vectorString" a el campo "lineasLista -> textoLinea" ("lineas Lista" será otro array de tipo linea").
en la funcion hago lo siguiente:
/* reservo memoria para un solo elemento */
lineasLista = (linea *) O_calloc(1, sizeof(linea *));
do
{
if(!*((*(vectorStrings+nlineas))+ncarac))
{
/* reservo memoria */
lineasLista = (linea *) O_realloc(lineasLista,sizeof(linea *) * (nlineas+1));
(lineasLista+nlineas) -> textoLinea = (char *) O_calloc(1,sizeof(char *));
(lineasLista+nlineas) -> textoLinea = (char *) *(vectorStrings+nlineas);
ncarac=0;
nlineas++
Tengo dos estructuras anidadas como sigue (solo muestro los campos necesarios para evitar confusiones) :
typedef struct _linea
{
char * textoLinea; /* texto del shape */
}linea;
struct _lista
{
char ** strings; /* contendra todos las lineas de texto */
linea * fila; /* apuntará a un array de tipo linea, un
elemento por linea */
};
typedef struct _lista lista;
y la funcion:
-------------
int extraerLineas(char ** vectorStrings, linea * lineasLista);
pasandole los argumentos como sigue:
extraerLineas(listaCmp -> strings,listaCmp -> fila);
siendo "listaCmp" de tipo lista.
"vectorString" es un array de cadenas, lo que pretendo en asignar la direccion de cada una de las lineas de "vectorString" a el campo "lineasLista -> textoLinea" ("lineas Lista" será otro array de tipo linea").
en la funcion hago lo siguiente:
/* reservo memoria para un solo elemento */
lineasLista = (linea *) O_calloc(1, sizeof(linea *));
do
{
if(!*((*(vectorStrings+nlineas))+ncarac))
{
/* reservo memoria */
lineasLista = (linea *) O_realloc(lineasLista,sizeof(linea *) * (nlineas+1));
(lineasLista+nlineas) -> textoLinea = (char *) O_calloc(1,sizeof(char *));
(lineasLista+nlineas) -> textoLinea = (char *) *(vectorStrings+nlineas);
ncarac=0;
nlineas++
Valora esta pregunta


0