• 07.07.2025, 01:42
  • Register
  • Login
  • You are not logged in.

 

TheGothic

Full Member

Frage zu C Programmierung, Mehrdimensionale Arrays

Sunday, January 11th 2009, 5:50pm

nabend,

ich versuche gerade für eine Bekannte was in C zu programmieren. Bin zwar nicht so gut dabei, aber anscheinend besser als sie...

ein Teil der Aufgabe verlangt das 2 Matrizen(nur quadratische) miteinander addiert werden sollen. Der Anwender muß größe der Matrix und die Koeffizienten selber eingeben können.
meine bisherige Lösung(die auch funktioniert hat) sieht so aus:

Source code

1
2
3
4
5
int main (void)
{
int matrix_g; //matrix größe, nur eine da quadratisch
int matrix_1[matrix_g][matrix_g], matrix_2[matrix_g][matrix_g], matrix_e[matrix_g][matrix_g];
int x, y;


da ich jetzt ein bissel kram in Funktionen auslagern wollte, sollten die obigen Variablen globale Variablen werden. Also vor "int main (void)" stehen.
dann klappt das aber nicht und der Compiler bricht mit einem Fehler ab. wenn ich die größe des Mehdimensionalen Arrays festlege z.B. "int matrix_1[3][3]" funktioniert es.

Ich hoffe jemand von euch hat eine Idee, wie ich meine Idee richtig fortführen kann oder mir nen neuen Denkanstoß gibt.

Tüdülü TheGothic
Sector9

elbarto`

God

Sunday, January 11th 2009, 5:58pm

vermutlich musste static davor schreiben, also "static int g=3;"
und generell: wozu globale variablen? :P

hurra

God

Sunday, January 11th 2009, 6:09pm

Das geht so nicht.
Da muss ein const vor die Variable matrix_g hin. Jedoch kannst du sie dann nicht mehr ändern.
Du musst also das ganze dynamisch anlegen, dh mit malloc arbeiten.

TheGothic

Full Member

Sunday, January 11th 2009, 6:16pm

ertsmal Danke für die fixen Antworten...

vermutlich musste static davor schreiben, also "static int g=3;"
und generell: wozu globale variablen? :P

dann kann der Anwender aber nicht mehr die Größe auswählen. Was ja, wie ich beschrieben habe gefordert wird.
Warum keine globalen Variablen?!? Was spricht dagegen?!?
Wenn ich sie nicht Global definieren, meckert der Compiler, das die Funktionen Variablen benutzen wollen die nicht vorhanden sind.

Das geht so nicht.
Da muss ein const vor die Variable matrix_g hin. Jedoch kannst du sie dann nicht mehr ändern.
Du musst also das ganze dynamisch anlegen, dh mit malloc arbeiten.

hast du mit malloc da mal eine Beispiel Code Zeile?!?

@all
Warum funktioniert es denn wenn ich den kram in der main Methode habe?!?

This post has been edited 1 times, last edit by "TheGothic" (Jan 11th 2009, 6:19pm)

Sector9

elbarto`

God

Sunday, January 11th 2009, 8:08pm

also in dem meisten fällen macht man das mit den funktionen so:

int bla(int a)
{
a=a*a;
return a;
}

int main ()
{
int x;
int y=2;
x=bla(y);
print(x);
}

da brauch man dann keine globalen variablen ;)

Ani

God

Sunday, January 11th 2009, 9:41pm

wie mein erster C Programmieren Lehrer definierte
globale Variablen = böse

weil du nie genau weißt was drin steht, ob sie woanders manipuliert wurden oder sonst was...
übergib die variable an die Funktion und gut.

This post has been edited 1 times, last edit by "Ani" (Jan 11th 2009, 9:42pm)

Similar threads