C/Visual C - Paso de cadenas por referencia

 
Vista:

Paso de cadenas por referencia

Publicado por Gomi (2 intervenciones) el 02/02/2005 01:32:21
Hola de nuevo, creo que no me ha quedado del todo claro el paso de parametros por referencia a una funcion.
Tengo el siguiente codigo y no me compila:

#include<string.h>
#include <stdio.h>

void opcion1(char*tit,char nom[20]);

void main()
{char *tit,nom[20]="pepe";
opcion1(tit, nom]);
printf("El nombre es %s \n",tit);
}
void opcion1(char*tit,char nom[20])
{strcpy(tit,nom);
}

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Paso de cadenas por referencia

Publicado por chuidiang (677 intervenciones) el 02/02/2005 08:31:12
Hola:

En el tipo de parámetro array, no hay que poner el tamaño.

void opcion1 (char *tit, char nom[] )

Otro fallo es que tit no tiene espacio reservado. Unicamente tienes un puntero tit de tipo char *, pero que no apunta a ningún sitio concreto. El resultado, si tienes suerte, es que el programa, al ejecutarse, de una excepción, se caiga o lo que sea.

Reserva espacio suficiente para tit, puedes hacerlo de dos formas

char tit[20];

o bien

char *tit;
tit = malloc (20);

Si usas esto último, cuando no necesites más tit, debes liberarlo.

free (tit);

Para este tema de punteros quizás te ayude este tutorial http://www.geocities.com/chuidiang/funciones/punteros.html

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar