Foros del Web » Programación para mayores de 30 ;) » C/C++ »

C Array 2D dinamica

Estas en el tema de C Array 2D dinamica en el foro de C/C++ en Foros del Web. Buenas tardes. Necesito hacer una matriz dinamica, char, que sea de 2D. He probado poniendo: Código: char camp (*) [&n]; camp = (char (*) [&n]) ...
  #1 (permalink)  
Antiguo 10/05/2011, 10:33
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 12 años, 11 meses
Puntos: 0
C Array 2D dinamica

Buenas tardes.

Necesito hacer una matriz dinamica, char, que sea de 2D.

He probado poniendo:

Código:
 char camp (*) [&n];
    camp = (char (*) [&n]) malloc (sizeof (char) * &n);
y tambien con

Código:
char(*array)[15] = malloc((sizeof *array) * 10);

A ver si me podéis ayudar, gracias : )

PD: Os pongo el código del trabajo que estoy haciendo por si necesitáis saber más.

Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

//Estructura de dades
typedef struct//creo un nou tipus de variable//
{
    int *fil;//fila
    int *col;//columna
}posicio;
//Declaració de funcions que usem

void Printmap(char *camp, int n);
void primerapantalla(char pantalla, int n);
void Moure_formiga(char pantalla,char dir, posicio como, int n);

int main() {

    posicio ini, *comodin;//posició inicial
    int *n;// nº de columnes i files de la array
    int *movi;//nº de moviments
    int a,b,c,e,i;
    char f,direccio;
    char *dire;//direcció

    char camp (*) [&n];
    camp = (char (*) [&n]) malloc (sizeof (char) * &n);

    FILE *d;
    d=fopen("dades.txt","r");
    fscanf(d,"%d\n%d %d\n%c\n%d",&a,&b,&c,&f,&e);/* ho guardo tot a variables
    locals per a que no hem done algun error de segmentació (m'han aconsellat)*/
    fclose(d);

    *ini.fil=b;
    *ini.col=c;
    *dire=f;
    *movi=e;

    printf("%d %d %d %c &d",&*n,*ini.fil,*ini.col,*dire,*movi);//probant a verem si funciona la merda esta
}
  #2 (permalink)  
Antiguo 10/05/2011, 12:39
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: C Array 2D dinamica

La segunda forma que usastes es correcta
Código:
char (*miArray)[15];
miArray = malloc(n * sizeof *miArray);
Pero esto lo que hace es declarar un array de dos dimensiones, una de ellas con tamaño fijo de 15 caracteres. Es decir, en realidad, estás creando un array 1D de cadenas de texto que en sí son arrays.

Si lo que quieres es un array 2d de cadenas de texto, entonces buscas un array 3D, es decir
Código:
char (**miArray)[15];
__________________
Foros Desarrollo de Juegos
  #3 (permalink)  
Antiguo 10/05/2011, 14:49
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: C Array 2D dinamica

Gracias, o sea si quiero una array de 2D tengo que hacer lo que has puesto tu?

Etiquetas: dinamica
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:10.