Dynamische Speicherallokierung in DLL

Gast #5086481
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren