|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
[Linguaggio C] Allocazione dinamica di una matrice bidimensionale
come si fa ?
grazie 1000 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
devi usare calloc
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
esempio scusa ?
supponiamo di partire da questa: matrice[10][10]; ma durante l'esecuzione del programma mi serve la medesima matrice di 100x100 elementi, cosa scrivo ? non mi era mai capitata una situazione con gli array |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
data una matrice fatta così, esiste un algoritmo che mi determina la lunghezza dei percorsi?
Codice:
••••••••••• •e ••• • •• ••• • •• ••• •• ••••••• •••••••••••••••• • • ••••••••• • s •••• • e = end |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
ci sono vari algoritmi che cercano le strade migliori. Se non erro uno si chiamava di dijistra o simile.
per un array è così quindi ti crei un array Codice:
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *pMatrice;
pMatrice = (int*) calloc (10*10, sizeof(int));
for (int i=0;i<100;i++){
pMatrice[i]=i+1;
}
for (i=0;i<100;i++){
printf ("%d\t",pMatrice[i]);
if (i==i*10 && i!=0) printf ("\n");
}
printf ("\n\n\n\n\n2 elemento della 3 riga:%d",pMatrice[3*10+2]);
system ("PAUSE");
return (0);
}
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
grazie Fenomeno85
ho trovato pure questo Codice:
int i;
int **p;
p = (int**)malloc(riga*sizeof(int*));
for(i = 0; i <= colonna; i++)
p[i] = (int*) malloc(colonna*sizeof(int));
se riga = 10 e colonna = 10 dovrebbero venire allocati (10*4) + (10*4) = 160 (byte) o sbaglio ? |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
si dovrebbero essere 160 byte però poi la dimensione dei valori dipende anche dall'architettura se non ricordo male ... cmq possono variare questo son sicuro.
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso Ultima modifica di Fenomeno85 : 16-02-2005 alle 17:20. |
|
|
|
|
|
#8 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#9 | |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Quote:
Il motivo è che allochi prima una sequenza di puntatori a int, e poi dieci sequenze di dieci int ciascuna. Quindi la memoria totale allocata è riga*sizeof(int*) + riga*colonna*sizeof(int). A proposito: nel for su i, la seconda condizione deve essere "i < riga".
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8896
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
dei cammini minimi a sorgente singola, sai nulla ? |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Dec 2004
Città: Parma
Messaggi: 1037
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:52.



















