Título: como declaro una variable en un void para que varie? Publicado por: AXA en 25 Octubre 2021, 07:03 am en pascal procedure uno(var c:integer)
todo lo que pasa en el procedure sobre c se devuelve el cambio en el main en c void uno(int c) {c=19} main(){ int d; d=8; uno(d); //d ahora sigue valiendo 8 y quiero que se asigne en uno 19} } como hago? seguro que ETERNAL IDOL firme me dara la posta. Título: Re: como declaro una variable en un void para que varie? Publicado por: Eternal Idol en 25 Octubre 2021, 09:57 am Te lo dije en el otro hilo, con un ejemplo y un enlace que lo explica detalladamente. Tenes que pasar el parametro por referencia y no por valor.
Código
Título: Re: como declaro una variable en un void para que varie? Publicado por: AXA en 25 Octubre 2021, 12:06 pm Esto no lo hiba a descubrir nunca. Otra vez graciacias.
Me surgio un problema con el struct. Lo resolvi usando variables glovales, pero no es la idea. es molesto asignar antes de llamar. struct st{ int i1 } void uno(st *i2){ int i3; i3=20; *i2.i1=i3;//esto no se puede! =&i3 tampoco. pruebo no? } void main() st i; uno(&i); } Título: Re: como declaro una variable en un void para que varie? Publicado por: MAFUS en 25 Octubre 2021, 13:51 pm Usa etiquetas GeSHi para insertar el código. Están en la barra de herramientas, en un desplegable, cuando estás escribiendo un post o una respuesta. (Para moderadores y webmaster: Sería mejor cambiar el texto Código GeSHi por algo más intuitivo como 'Elige lenguaje...' o 'Color syntax...'.
AXA, ¿qué estás usando para aprender C? Veo main sin tipo o main con tipo void... Normalmente un libro o tutorial (de C moderno, no el pre-ansi) te dice que main es de tipo int y hay que marcarlo explícitamente. También debes tener en cuenta la precedencia de operadores: Código: *i2.i1=i3; estás dereferenciando i1, no i2.Una pequeña prueba de ello: Código Por tanto debería ser así: Código: (*i2).i1=i3; Aunque en C tienes el operador flecha que te limpia el código:Código: i2->i1=i3; Por tanto el código último que has puesto, solucionados estos pequeños fallos y poniendo nombres representativos en los identificadores, quedaría algo así: Código
|