PDA

Visualizza la versione completa : [C] problema malloc


myricio
06-01-2014, 23:25
ciao a tutti,
sto facendo un pò di esperienza con le matrici gestite tramite puntatori e malloc.
vorrei creare una matrice 3x3 con doppio puntatore che abbia al suo interno i numeri da 1 a 9.
ho seguito passo passo la slide del mio insegnante ma il compilatore continua a darmi errore, che sto a scrivere su una zona di memoria non allocata. ci terrei molto a sapere cosa sbaglio, specialmente se vi è una lacuna teorica dietro. Grazie



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


int main() {
double **A;
size_t n=3;
size_t m=3;
size_t i,j;
A=malloc(n*sizeof(double*));

for(i=0;i<n;i++)
A[i]=malloc(m*sizeof(double));

for(i=0;i<n;i++) {
for(j=0;j<n;i++) {
A[i][j]=i*m+j+1;
printf("%lf \n", A[i][j]);
}
}
free(A);
}

MegaAlchimista
07-01-2014, 00:08
Nell'ultimo for è j++ non i++.
inoltre c'è un altro mini errore. J dovrebbe variare da 0 a m, non da 0 ad n.
in questo caso non riceverài errori perchè n==m, ma se cambierài i valori la situazione cambierà. Comunque per una questione di ordine di consiglio di modificarlo

myricio
07-01-2014, 01:05
Grazie mille, erano degli appunti scritti un pò confusi, devo aver letto male e non mi accorgevo dell'errore!

Loading