Moin,
ich habe ein struct array in meiner Main Funktion, und möchte dieses
einen Zeiger auf dieses Array an eine Funktion übergeben und dann in der
Funktion speichern. Jedoch hab ich da so meine Schwierigkeiten.
Ein Versuchs Programm:
1
#include<stdlib.h>
2
#include<stdio.h>
3
4
voidp(int*zeiger[])
5
{
6
int*pointer[10];
7
8
*pointer=zeiger;
9
10
for(inti=0;i<10;i++)
11
{
12
printf("%d\n",pointer[i]);
13
}
14
}
15
16
intmain(){
17
18
inta[10]={1,2,3,4,5,6,7,8,9,10};
19
20
p(a);
21
22
return0;
23
}
Ich möchte, dass das array "a[]" an die Funktion "P" übergeben wird, und
in dem array Zeiger "pointer" speichern. Danach sollen die Zahlen aus
"pointer" ausgegeben werden.
Kann mir jemand helfen?
MfG
Philipp
P.S.
Hab grad noch was zustande bekommen, so gehts, funtzt es aber auch
irgentwie ohne die for schleife?
@Peter II:
Das war ne reine Testanwenung.
Ich habe ein großes Programm, das in Modulen arbeitet. Dazu speicher ich
zentral einige Daten (unteranderem auch Arrays), die in allen Modulen
verfügbar sein müssen. Dazu habe ich in jedem Modul Zeiger auf die
jeweiligen Variablen, die ich in einer Init Funktion übergebe.
Das array "a" ist Zentral und alle Module sollen drauf zugreifen, die
Funktion "p" soll ein Modul darstellen, in einer Init Funktion übergebe
ich dann den Zeiger auf "a" und speicher ihn in pointer. (pointer ist im
Modul nicht in einer Funktion sondern global angelegt.)
Mit pointer = zeiger, will ich einfach nur den Zeiger von "a" in dem
zeiger "pointer" speichern.
MfG
Philipp
Philipp Maricek schrieb:>> Mit pointer = zeiger, will ich einfach nur den Zeiger von "a" in dem> zeiger "pointer" speichern.>
Die Variable zeiger ist überflüssig, so geht's auch:
Vll hilfts fürs pointer/array-verständnis... Für mich ist es dann oft
hilfreich die pointer und so auf ein Papier zu zeichnen.
1
voidp(int**zeiger)
2
{
3
int*pointer[10];
4
5
for(inti=0;i<10;i++)
6
pointer[i]=*(zeiger++);
7
8
for(inti=0;i<10;i++)
9
printf("%d\n",*pointer[i]);
10
}
11
12
13
intmain(void)
14
{
15
int*a[10];
16
intb[]={1,2,3,4,5,6,7,8,9,0};
17
int*pb=&b[0];
18
19
for(inti=0;i<10;i++)
20
a[i]=pb++;
21
22
p(&a[0]);
23
24
return0;
25
}
Aber das versteh ich gar nicht:
>> ich habe ein struct array in meiner Main Funktion, und möchte dieses>> einen Zeiger auf dieses Array an eine Funktion übergeben und dann in der>> Funktion speichern.
@vll hilfts: war oben ein bisschen doof formuliert.
Das war nur ein Testprogramm, das eigentliche Programm besteht aus
verschiedenen Modulen. Die Variablen, die von mehreren Modulen gebraucht
werden, definiere ich global. In den Modulen sind structe, mit pointern.
An diese Pointer übergebe ich die Adressen der Globalen Variablen, die
ich in dem jeweiligen Modul brauche.
MfG
Philipp