so viel wie ich weiß, der nächste Code sollte nicht ausgeführt werden.deklarieren Größe Array in c
Das erste Problem ist die Deklaration von 'int i' innerhalb der Schleife und nicht am Startcode.
Das nächste Problem ist die Array-Größe ist in Laufzeit definiert und dafür müssen wir Dynamically Zuordnung verwenden.
Ich sollte "segment fualt" bekommen.
Ich betreibe es mit dem Befehl:
gcc -Wall commandLineArgument.c -o ex1
int main(void){
int size=0;
printf("enter number:\n");
scanf("%d",&size);
printf("The size is: %d\n",size);
int arr[size];
for(int i= 0;i<size;i++)
{
arr[i] = 5;
}
for(int i= 0;i<size;i++)
{
printf("%d,",arr[i]);
}
printf("\n");
return 0;}
bearbeiten wenn variabler Länge Arrays haben in C, da C99 dann, wie der Update-Code ausgeführt wird gefördert?
gcc -Wall -std=c89 commandLineArgument.c -o ex1
int main(void){
int i;
int size=0;
printf("enter number:\n");
scanf("%d",&size);
printf("The size is: %d\n",size);
int arr[size];
printf("The size of arr: %lu\n",sizeof(arr));
for(i= 0;i<size;i++)
{
arr[i] = 5;
}
for(i= 0;i<size;i++)
{
printf("%d,",arr[i]);
}
printf("\n");
return 0;}
Mögliche Duplikate von [Speichern Array-Werte aus benutzerdefinierten Array-Längen] (http://stackoverflow.com/questions/18951151/store-array-values-from-user-defined-array-lengths) –
und so was ist Ihre Frage? – artm
Für den ersten Teil ist es in C erlaubt, aber nicht in C++. Für den zweiten Teil hat jedes definierte "i" den Umfang der entsprechenden Schleife. –