Azzera filtri
Azzera filtri

How to return pointer from C caller function?

14 visualizzazioni (ultimi 30 giorni)
Ismail Mussed
Ismail Mussed il 14 Set 2020
Commentato: Ruben Galvez il 16 Gen 2024
I'm trying to use the C caller in Simulink to call a function that returns a pointer to an array. The function definition is like this:
int *convert_to_string (int input) {
static int arr[10];
arr[0] = input;
arr[1] = input + 1;
return arr;
}
But the C caller can't find any function that has a * in front of it. This surprised me because returning a pointer to an array is something totally routine in C. I noticed there is a "size" parameter for the output argument of the C caller block, but it isn't clear if there's a way to make that anything but 1.
How do I make the C caller find my function that returns a pointer?

Risposte (1)

majety
majety il 4 Nov 2020
Hi Matthew,
You could try passing in the int * arr as an input argument to the function. When you configure your C-Caller block in Simulink, you can set the arr variable as an output. Let me know if that doesn't work.
  1 Commento
Ruben Galvez
Ruben Galvez il 16 Gen 2024
This would be a solution if you merely wanted to modify the content of the memory region where arr is pointing to. If you want arr to point to somewhere else, you need a function that returns a pointer.

Accedi per commentare.

Categorie

Scopri di più su Simulink Functions in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by