Christoph Zurnieden: (C) Mehrdimensionales Array an Funktionen übergebebn

Beitrag lesen

Hi,

zäh bist Du ja, das muß man Dir schon zugestehen. Ich kenne viele die schon viel früher die Brocken hingeworfen hätten :-)

Nun war ich aber in der Situation, dass ich genau einen Wert irgendwo im Array feld[][], zB feld[3][2], an eine Funktion übergeben wollte.
Den Prototyp kann ich mir leicht zusammenreimen..

void function(int f[1][1]);


> ..aber wie kann ich nun genau einen Zeiger auf genau diese eine Stelle zeigen lassen, die ich übergeben will?  
> Natürlich kann ich das komplette Array übergeben und abarbeiten, aber ich würde gerne die Problemstellung versuchen zu lösen.  
  
Dann poste doch mal die Problemstellung, denn so "ausse Lamäng" kann man da auch nicht viel zu sagen.  
  
Wenn es aber Integer sind: warum kein work-on-copy und einfach den Integer kopieren und der Funktion übergeben? Es ist natürlich ein Problem, wenn der Wert zwischenzeitlich geändert wurde (Bei den Threads waren wir ja schon und ich nehme an, das Du dabei geblieben bist). Dann mußt Du einen Pointer auf die gewünschte Stelle übergeben, aber das tust Du ja bereits, wenn auch nicht so ganz, wie Du es gerne hättest.  
  
Ich fang mal etwas quer an, denn dafür bin ich ja bekannt ;-)  
Du kennst doch main(), oder? Ich schreibe z.B. immer  
  
~~~c
  
#include <stdlib.h>  
int main(int argc, char **argv){  
  exit(EXIT_SUCCESS);  
}  

Was ist jetzt in "argv"? Genau, ein zweidimensionales Array.

  
#include <stdio.h>  
#include <stdlib.h>  
int main(int argc, char **argv){  
  printf("%d %s %c\n",argc,argv[1],argv[1][1]);  
  exit(EXIT_SUCCESS);  
}  

$ foo -bar
2 -bar b
$ foo # na, was kommt jetzt? ;-)
Speicherzugriffsfehler

Reicht das als Hinweise? Ansonsten müßtest Du schon mal Dein Problem genauer darlegen, vielleicht brauchst Du ja etwas gänzlich anderes.

so short

Christoph Zurnieden