INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Pointer auf Array mit Labview übertragen und darstellen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

17.07.2013, 08:26 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013 08:42 von rolfk.)
Beitrag #23

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Pointer auf Array mit Labview übertragen und darstellen
(17.07.2013 07:20 )lupus022 schrieb:  Warum kann ich dann das Array korrekt auslesen, wenn ich es aus einem anderen C-Programm aus aufrufe?

Vielleicht weil Du dort dieselbe Indexierungssyntax verwendest. Das sollte natürlich schon dasselbe liefern. Ob das aber das macht was Du in LabVIEW mit den zwei verschachtelten GetValueByPointer Aufrufen machst ist noch die Frage. Und das wirst Du am besten im Debugger im Singelstepmodus und mit dem Memorymonitor im Auge, selber mal raussuchen müssen.

Ich weiss nur dass in C

Code:
int **array1;
int array2[5][100];
zwei sehr unterschiedliche Dinge produziert. Das erste ist ein Pointer auf ein Pointer, das zweite ist logisch zwar ein 2D Array aber physikalisch ein 1D Array mit 5 * 100 Elementen.

Beim ersten spricht man ein einzelnes Element zumindest in C ganz sicher nicht mit [i][j] an. Da meckert der Compiler ganz einfach.
Da müsste man schon so etwas wie

Code:
array1[i]->[j]

verwenden. Grundsätzlich könnte ich mir vorstellen dass C++ mittels operator overloading im Falle von Pointern auch das Richtige macht aber ohne das ausführlich im Speicher getestet und überprüft zu haben würde ich da jetzt keine definitive Aussage machen wollen.

Wahrscheinlich würde ich das zuerst mal so probieren:

Code:
for(int i = 0; i < row; i++)
    {
        int *ptr = testptr[i];
        for(int j = 0; j < col; j++)
           ptr[j] = i+j;
    }

Und natürlich den Warnlevel des Compilers auf maximal setzen! Mit W1 siehst Du praktisch nur echte Syntaxfehler.

Bei Visual C ist meiner Meinung nach Code der nicht mit W3 sondern Warnungen kompiliert grundsätzlich nicht produktionstauglich. W4 ist etwas extrem da er wirklich die extremsten Dinge anmeckert.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: Pointer auf Array mit Labview übertragen und darstellen - rolfk - 17.07.2013 08:26

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenübergabe an DLL Pointer to Pointer Reiling 2 9.594 02.02.2018 10:59
Letzter Beitrag: Reiling
  Absturz durch unzulässige Pointer VS_03 3 10.310 28.10.2016 18:32
Letzter Beitrag: VS_03
  dll mit Pointer auf komplexe Struktur einbinden Wedgewood 11 17.009 27.04.2014 23:44
Letzter Beitrag: Wedgewood
  Pointer und MoveBlock OXO 4 8.206 03.06.2013 16:31
Letzter Beitrag: OXO
  Pointer auf Subarray übergeben Event Horizon 5 7.427 15.07.2012 10:21
Letzter Beitrag: rolfk
  DLL-Einbindung, Struct mit verschiedenen Datentypen als Pointer übergeben hawk72 4 11.080 11.05.2012 14:41
Letzter Beitrag: hawk72

Gehe zu: