Hallo zusammen,
ich nutze den Matlab Coder zur Generierung einer DLL und schaue mir
anschließend den erzeugten C-Code an. Dabei habe ich noch Probleme mit
der dynamischen Speicherallokierung.
Ich denke, am besten demonstriere ich das Ganze an einem Beispiel:
Der Matlab Code:
1 | function test(vector)
|
2 | vector = zeros(1,10)
|
3 | end
|
führt zu den erwarteten Ergebnissen.
Aber der Matlab-Code:
1 | function test(vector, vector_size)
|
2 | vector = zeros(1, vector_size)
|
3 | end
|
führt in C zu:
1 | void test(const double vector_data[], const int vector_size[2], double
|
2 | b_vector_size)
|
3 | {
|
4 | (void)vector_data;
|
5 | (void)vector_size;
|
6 | (void)b_vector_size;
|
7 | }
|
So dass ich
a) Drei Argumente beim DLL-Aufruf benötige
b) Die C-Funktion scheinbar keinen Speicher allokiert
Kann mir hier jemand weiterhelfen?
Vielen Dank und viele Grüße,
Manfred