PDA

Visualizza la versione completa : [C] Array con DImensione Variabile...?


nightfall
21-11-2003, 18:44
Come faccio a creare un array a dimensione variabile ?

vorrei che la dimensione aumenti a seconda dell'Aumento della
variabile in un ciclo..

for (i=0; i<10; i++) {

}

Ho gia provato fare :
int *vett;
int i;
vett = new int (i);

Ma in un ciclo Non Funziona...

PunkIvi
21-11-2003, 18:46
Gli array devono avere dimensione fissa, per strutture dinamiche si usano liste, alberi ecc...

$$$
21-11-2003, 19:09
int dim = 242, i, *arr;

arr = new int [dim];
for (i=0; i<dim; i++)
arr [i] = ...;

PunkIvi
21-11-2003, 19:11
Sorry avevo capito male ci˛ che intendevi per array :quipy: :stordita:

nightfall
21-11-2003, 19:26
In questo caso l'array ha dimensione 242
ma io voglio che la dimensione aumenti con l'aumentare di i...

$$$
21-11-2003, 19:34
nn capisco la tua richiesta...


int i, *arr;
arr = malloc ( 1 * sizeof(int) );

for (i=1; i<conto; i++)
arr = realloc( i * sizeof(int) );

nightfall
21-11-2003, 19:37
Il mio array non deve avere una dimensione fissa...
Ammettiamo che io voglia fare inserire all'utente una
sequenza di numeri.. l'utente termina la sequnza quando
inserisce un numero negativo...

Io creo un ciclo for che mi conta i numeri inseriti
e inserico il numero nell'Array...

for (i=0; num > 0; i++) {
scanf("%d",myArray[i]);
}

Il Mio array deve crescere a seconda di I

$$$
21-11-2003, 19:55
/* .... */

int lastVal, allValues, *valueMatrix;

allValues = 0;
valueMatrix = malloc( sizeof(int) * 1 );

do {

scanf ("%d", lastVal);
valueMatrix [allValues++] = lastVal;
valueMatrix = realloc( sizeof(int) * (allValues+1) );

} while ( !lastVal );

free( valueMatrix );

/* .... */

nightfall
22-11-2003, 12:25
il listato ha un errore...

nightfall
22-11-2003, 12:34
:dh˛:
Riuscito...

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

void main () {
int i;
int *vett;
for(i=1; i<5; i++){
realloc(vett, sizeof(int));
scanf("%d", &vett[i]);
}
for (i=1;i<5; i++) {
printf("%d\n",vett[i]);
}
fflush(stdin);
getchar();
}

Loading