void enterTwoArrays()
{
printf("Enter m!\n");
scanf("%d",&m);
printf("Enter n!\n");
scanf("%d",&n);
int arr[m][n];
printf("Enter m2!\n");
scanf("%d",&m2);
printf("Enter n2!\n");
scanf("%d",&n2);
int arr2[m2][n2];
for(i=0; i<=m-1; i++)
{
for(j=0; j<=n-1; j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0; i<=m2-1; i++)
{
for(j=0; j<=n2-1; j++)
{
scanf("%d",&arr2[i][j]);
}
}
}
void addition(int arr[m][n], int arr2[m2][n2])
{
int arr3[m][n];
for(i=0; i<=m-1; i++)
{
for(j=0; j<=n-1; j++)
{
arr3[i][j]=arr[i][j]+arr2[i][j];
}
}
}
Hey, ich habe ein Problem. Ich habe diese zwei Funktionen in C. Die Idee ist, dass ich in der ersten Funktion Arrays erstellen und füllen werde. Und die 2. Funktion wird Werte von zwei Arrays hinzufügen. Aber wenn ich es versuche, zerfällt das Programm. Ich denke ich weiß wo das Problem liegt. Weil meine Arrays irgendwie lokal sind und ich sie später nicht von der Hauptfunktion zur zweiten Funktion senden kann. Wie kann ich dieses Problem lösen? Ich kann diese Arrays nicht vorher in main/be4 main deklarieren, ohne n- und m-Variablen zu kennen.Wie mache ich mein Array in Funktion global in C gemacht?
Sie könnten Zeiger auf die Arrays übergeben. –
übergeben Zeiger auf Arrays als Argumente in Ihren Funktionen. –
Ich sehe nichts an sich falsch mit Ihrem Code selbst, aber es hängt davon ab, dass 'm2' und' n2' mindestens so groß wie 'm' und' n' sind. Wenn dies bei einem gegebenen Lauf nicht der Fall ist, versucht die Funktion addition() ', außerhalb ihrer Grenzen auf" arr2 "zuzugreifen. Vielleicht sollten Sie stattdessen nur einen gemeinsamen Satz von Dimensionen lesen und ihn für beide Arrays verwenden. –