elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con Matrices de memoria Dinamica
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Matrices de memoria Dinamica  (Leído 2,038 veces)
Saikilito

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Problema con Matrices de memoria Dinamica
« en: 20 Julio 2017, 06:02 am »

Buenas :)

Antes que nada muchas gracias a todo el que se tome el tiempo de leer y/o intentar ayudarme.

Estoy haciendo un ejercicio bastante sencillo sobre crear Matrices con memorias dinámicas desde funciones, pero empezando el ejercicio me tope con un problema curioso!

Resulta que cuando intento devolver la dirección de memoria desde la función para asignárselo a las matrices el compilador me lanza un error diciendo que no puedo asignar con "="

Claro esto ya lo probé luego con el Dev-C++ porque el tutorial que estoy haciendo trabajan con ello y en efecto el programa corrio (igual marco los avisos pero corrio) la cosa es que yo no uso Dev-C porque me parece altamente permisivo y lo dicho con el minGW no me corre y de verdad no se como solucionarlo ya busque por la web y termine mas enredado que al inicio con el tema de los punteros, dicho esto aclaro que aun estoy bastante novato en esto de programar.

Sin mas que decir dejo el codigo para que lo examineis.

Código:

#include <stdio.h>
#include <stdlib.h>

/*Crear un programa que compare si dos matrices son iguales y haga todo con funciones*/

int espacioM();

int **A,**B;
int i,j,k;
int filas,col;

int main( void ) {

printf("Introduce el numero de filas\n");
scanf("%i",&filas);
printf("Introduce el numero de columnas\n");
scanf("%i",&col);

/*-----------Aqui es donde esta el presunto error ------ */

        A = espacioM(filas,col);
B = espacioM(filas,col);

/*----------------------------------------------------------*/

printf("Que lo que menol\n");


getchar();
return 0; }

int espacioM (int filas, int col)
{
int **mtz;

mtz = (int**)malloc(filas*sizeof(int*));
if (mtz==NULL)
{
printf("EPA La memoria no se asigno!\n");
exit(1);
}
for (i = 0; i < filas; ++i)
{
mtz[i] = (int*)malloc(col*sizeof(int));
if (mtz[i]==NULL)
{
printf("EPA La memoria no se asigno!\n");
exit(1);
}
}

return **mtz;}




Aqui el copy/paste del error que deja el compilador

Código:

16-. Comparar Matrices D con funciones.c: In function 'main':
16-. Comparar Matrices D con funciones.c:19:4: error: assignment makes pointer from integer without a cast [-Wint-conversion]
  A = espacioM(filas,col);
    ^
16-. Comparar Matrices D con funciones.c:20:4: error: assignment makes pointer from integer without a cast [-Wint-conversion]
  B = espacioM(filas,col);
    ^
[Finished in 0.9s]


A todos gracias por su tiempo.






En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Problema con Matrices de memoria Dinamica
« Respuesta #1 en: 20 Julio 2017, 13:36 pm »

El resumen es este:

Código
  1. int **A;
  2. A = espacioM();
  3.  
  4. int espacioM(){
  5.    int **mtz;
  6.    return **mtz;
  7. }

Aquí hay varios problemas.

Primero, A es un "int**", por tanto, no le puedes asignar el retorno de espacioM, que es un "int".
La solución en este caso, es hacer que espacioM retorne "int**", pues quieres que retorne la matriz.

Segundo problema, "return **mtz". mtz es un "int**", por tanto, basta poner "return mtz" para retornar lo que quieres. Después de la declaración de mtz, al escribir "*mtz", estás "quitando" un puntero, convirtiendo el "int**" a "int*". Si lo haces 2 veces, lo conviertes a "int".

En resumen, quieres que espacioM retorne "int**". Para ello, retorna directamente mtz.


En línea

Saikilito

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Problema con Matrices de memoria Dinamica
« Respuesta #2 en: 20 Julio 2017, 20:02 pm »

 :o !!!

Listo ya pude arreglarlo, quedo perfecto!!

Muchisimas gracias  ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta Memoria Dinámica En "Matrices" « 1 2 »
Programación C/C++
ZedGe 12 4,598 Último mensaje 2 Diciembre 2011, 03:49 am
por ZedGe
Problema con asignación dinamica de memoria.
Programación C/C++
ThePinkPanther 9 4,677 Último mensaje 4 Febrero 2013, 00:56 am
por ThePinkPanther
matrices y memoria dinamica
Programación C/C++
m@o_614 3 1,828 Último mensaje 23 Noviembre 2013, 15:53 pm
por rir3760
Problema leyendo cadenas con memoria dinamica [solucionado]
Programación C/C++
dato000 9 6,798 Último mensaje 24 Enero 2014, 18:37 pm
por dato000
Problema memoria dinámica y ficheros en c
Programación C/C++
kraiked 4 3,932 Último mensaje 18 Diciembre 2015, 17:12 pm
por kraiked
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines