🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
3 messages
3 total messages Started by root Tue, 31 Aug 1999 00:00
Problemas con el paso de una matriz a una funcion
#113
Author: root
Date: Tue, 31 Aug 1999 00:00
28 lines
1259 bytes
Tengo un peque�o problemilla al pasar una matriz a una funcion en C.
Para ver si me podeis echar una mano adjunto un trocillo de codigo que
peta a ver si me ayudais


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


void cambio ( char array[ ][ ], char car )
{

 array[2][2]=car;
 printf("el contanido del array es ahora %c\n",array[2][2]);
}

main()
{
 char array[5][5];

 array[2][2]='X';

 cambio(array,'T');

}

El error que aparece al compilar es: " arithmetic on pointer to an
incomplete type "
Re: Problemas con el paso de una matriz a una funcion
#114
Author: J.A. Gutierrez
Date: Tue, 31 Aug 1999 00:00
42 lines
2149 bytes
In es.comp.os.linux root <becario.micro@alicante-ayto.es> wrote:
: Tengo un peque�o problemilla al pasar una matriz a una funcion en C.
: Para ver si me podeis echar una mano adjunto un trocillo de codigo que
: peta a ver si me ayudais


: void cambio ( char array[ ][ ], char car )
                     ^^^^^^^^^^^

	incorrecto:
void cambio ( char array[][5], char car )

: {
:  array[2][2]=car;

	si la funcion no sabe la segunda dimension, como puede calcular
	en que posicion de memoria cae el elemento [2][2]?

:  printf("el contanido del array es ahora %c\n",array[2][2]);
: }

: main()
: {
:  char array[5][5];

:  array[2][2]='X';

:  cambio(array,'T');

: }

: El error que aparece al compilar es: " arithmetic on pointer to an
: incomplete type "

	si no te vale que la dimension sea fija, tendras que recurrir
	a los punteros.

-- 
PGP and other useless info at      \                      Oh, show us the way
http://www.cps.unizar.es/~spd/      \                  to the next whisky bar
finger://daphne.cps.unizar.es/spd    \                           Weill/Bretch
Lo que si que es cierto es que la felicidad no da el dinero...
Re: Problemas con el paso de una matriz a una funcion
#112
Author: Santiago Romero Iglesias
Date: Wed, 01 Sep 1999 00:00
64 lines
2469 bytes
root wrote:
> 
> Tengo un peque�o problemilla al pasar una matriz a una funcion en C.
> Para ver si me podeis echar una mano adjunto un trocillo de codigo que
> peta a ver si me ayudais
> 

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

void cambio ( char array[5][5], char car )
{

 array[2][2]=car;
 printf("el contanido del array es ahora %c\n",array[2][2]);
}

main()
{
 char array[5][5];

 array[2][2] = 'X';

 cambio(array,'T');

}


 prueba ahora :?
 El problema estaba en:

 void cambio ( char array[][], char car )

 A C tienes que decirle como minimo lo siguiente:

 void cambio ( char array[5][], char car )

 Es decir, en las matrices como minimo tienes que
especificar el ancho de la matriz, para que C sepa
como puede acceder a un elemento en concreto (como
quieres que C sepa la anchura de la matriz para saltar
a la posicion adecuada???)...

 Podrias hacerte una funcion generica pasando la
anchura de la matriz como parametro anchura, y hacer:

 equivalente de matriz[x][y] = 69;

 *(matriz+(anchura*y)+x) = 69;

 salu2.


--
Windows Error 002: No Error - Yet

 ------------------------------------------------------------- __ ---
| Santiago Romero       santiago.romero@iname.com        |    /oo\   |
| AKA NoP/Compiler    http://www.ctv.es/USERS/sromero/   |    (\/)   |
 --------------------------------------------------------    / __ \  |
|   POWERED BY - Linux RedHat 6.0  -  Reg. User #74.821  |  |\    /| |
|   ICQ # 35031251           -        NoP en IrcHispano  |  OO __ OO |
| Firmas-DRIVERS-Linux: http://www.ezfind-dir.com/firmas |           |
 --------------------------------------------------------------------
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads