saludos a todos, hoy tengo un problema con un ejercicio y el problema esque se como se hace en c++ pero no se como hacerlo en c, para ser mas espesifico necesito reservar memoria con punteros en c lo cual creo que se hace con malloc y pues yo hice el programa en c pero con extensión c++ para que corra new y el delet con que se resrva la memoria.
lo que necesito es este mismo programa pero acomodado al c (osea con malloc)
(este codigo copila perfecto si esta con estencion c++)
agradezco su ayuda muchas gracias
#include <stdio.h>
#include <stdlib.h>
void pedirdatos();
void sumarmatriz(int **,int **,int,int);
void mostrarmatriz(int **,int,int);
int **pmatriz1,**pmatriz2,filas,columnas;
int main(){
pedirdatos();
sumarmatriz(pmatriz1,pmatriz2,filas,columnas);
mostrarmatriz(pmatriz1,filas,columnas);
for(int i=0;i<filas;i++){
delete[] (pmatriz2+i);
}
delete[] pmatriz2;
for(int i=0;i<filas;i++){
delete[] (pmatriz1+i);
}
delete[] pmatriz1;
return 0;
}
void pedirdatos(){
printf("ingrese el numero de filas: ");
scanf("%d",&filas);
printf("ingrese el numero de columnas: ");
scanf("%d",&columnas);
//reservando memeoria
printf("matriz #1\n");
pmatriz1=new int*[filas];//reservar memoria para filaz
for(int i=0;i<filas;i++){
*(pmatriz1+i)=new int[columnas];//resevar columnas
}
//llenando matriz 1
for(int i=0;i<filas;i++){
for(int j=0;j<filas;j++){
printf("digite un numero: ");
scanf("%d",&*(*(pmatriz1+i)+j));
}
}
printf("matriz #2\n");
//reservando memoria
pmatriz2=new int*[filas];//reservar memoria para filaz
for(int i=0;i<filas;i++){
*(pmatriz2+i)=new int[columnas];//resevar columnas
}
//llenando matriz 2
for(int i=0;i<filas;i++){
for(int j=0;j<filas;j++){
printf("digite un numero: ");
scanf("%d",&*(*(pmatriz2+i)+j));
}
}
}
void sumarmatriz(int **pmatriz1,int**pmatriz2,int filas,int columnas){
for(int i=0;i<filas;i++){
for(int j=0;j<filas;j++){
*(*(pmatriz1+i)+j)= *(*(pmatriz1+i)+j)+ *(*(pmatriz2+i)+j);
}
}
}
void mostrarmatriz(int **pmatriz1,int filas,int columnas ){
printf("la suma de las dos matrices es:\n");
for(int i=0;i<filas;i++){
for(int j=0;j<filas;j++){
printf("%d ",*(*(pmatriz1+i)+j));
}
printf("\n");
}
}