weitergabe ein arraypointers
-
hallo ich habe folgendes problem. ich habe eine funtkion die ein zeiger aus eine arraay übergeb bekommt. jedcoh wird in dieser funktion das array nocheinaml an eine andere funktion übergeben. um es kalrer zu machen, ich probiere sortieralgorithmen und in diesem fall heapsort dort gibt die funktion heapsort welche das array in form eine poters aus der main übergeben bekommt. in der heapsortfunktion wird dann nochmal eine funktion aufgerufen die aus dem array ein heap macht. wie übergebe ich der dann das array?
void adjustheap(int n, int *daten, int k) {//wie muß der parameter daten angeben werden? int j, v; v=daten[k]; while(k<n/2) { j=2*k+1; if((j<n-1) &&(daten[j]<daten[j+1)) j++; if(v>=daten[j]) break; daten[k]=daten[j]; k=j; } daten[k]=v; } void heapsort(int n, int *daten) { int k, t; for(k=n/2; k) adjustheap(n, daten, k--);//übergabe an adjustheap und problem while(--n) { t=daten[0]; daten[0]=daten[n]; daten[n]=t; adjustheap(n daten, 0); } }
gruß niesel
-
und was gibts für ein Problem?
bei mir geht jedenfalls folgendes:
[code]
void dat2(int *data)
{
printf("%d %d\n",data[0],data[1]);
}
void dat1(int data)
{
printf("%d %d\n",data[0],data[1]);
dat2(data);
}
int main(int argc, char argv[])
{
int data[2];
data[0]=1;
data[1]=2;
dat1(data);
return 0;
}
[cpp]
-
und was gibts für ein Problem?
bei mir geht jedenfalls folgendes:
void dat2(int *data) { printf("%d %d\n",data[0],data[1]); } void dat1(int *data) { printf("%d %d\n",data[0],data[1]); dat2(data); } int main(int argc, char* argv[]) { int data[2]; data[0]=1; data[1]=2; dat1(data); return 0; }
-
Was genau funktioniert denn nicht? Das hast du vergessen zu erwähnen...
Eigentlich solltest du den Zeiger einfach weiterreichen können.