Mercurial > octave-dspies
annotate examples/myfeval.c @ 18367:d1e16bdb3958 stable
myfeval.c: Fix segfault in mex example code.
* myfeval.c: Correctly cast away const attribute of prhs[].
Also, add code to work with Octave's built-in 'ans' variable.
* external.txi: Update example in External Code Interface for myfeval.
author | Rik <rik@octave.org> |
---|---|
date | Fri, 24 Jan 2014 09:09:48 -0800 |
parents | 224e76250443 |
children |
rev | line source |
---|---|
5864 | 1 #include "mex.h" |
2 | |
3 void | |
16867
be41c30bcb44
Re-write documentation and all examples of dynamically linked functions.
Rik <rik@octave.org>
parents:
9932
diff
changeset
|
4 mexFunction (int nlhs, mxArray* plhs[], |
be41c30bcb44
Re-write documentation and all examples of dynamically linked functions.
Rik <rik@octave.org>
parents:
9932
diff
changeset
|
5 int nrhs, const mxArray* prhs[]) |
5864 | 6 { |
7 char *str; | |
8 | |
18367
d1e16bdb3958
myfeval.c: Fix segfault in mex example code.
Rik <rik@octave.org>
parents:
17791
diff
changeset
|
9 mexPrintf ("Starting file myfeval.mex\n"); |
5864 | 10 |
16867
be41c30bcb44
Re-write documentation and all examples of dynamically linked functions.
Rik <rik@octave.org>
parents:
9932
diff
changeset
|
11 mexPrintf ("I have %d inputs and %d outputs\n", nrhs, nlhs); |
5864 | 12 |
17791
224e76250443
Use GNU style coding conventions for code in examples/
Rik <rik@octave.org>
parents:
16867
diff
changeset
|
13 if (nrhs < 1 || ! mxIsString (prhs[0])) |
16867
be41c30bcb44
Re-write documentation and all examples of dynamically linked functions.
Rik <rik@octave.org>
parents:
9932
diff
changeset
|
14 mexErrMsgTxt ("ARG1 must be a function name"); |
5864 | 15 |
16 str = mxArrayToString (prhs[0]); | |
17 | |
7081 | 18 mexPrintf ("I'm going to call the function %s\n", str); |
5864 | 19 |
18367
d1e16bdb3958
myfeval.c: Fix segfault in mex example code.
Rik <rik@octave.org>
parents:
17791
diff
changeset
|
20 if (nlhs == 0) |
d1e16bdb3958
myfeval.c: Fix segfault in mex example code.
Rik <rik@octave.org>
parents:
17791
diff
changeset
|
21 nlhs = 1; // Octave's automatic 'ans' variable |
d1e16bdb3958
myfeval.c: Fix segfault in mex example code.
Rik <rik@octave.org>
parents:
17791
diff
changeset
|
22 |
d1e16bdb3958
myfeval.c: Fix segfault in mex example code.
Rik <rik@octave.org>
parents:
17791
diff
changeset
|
23 /* Cast prhs just to get rid of 'const' qualifier and stop compile warning */ |
d1e16bdb3958
myfeval.c: Fix segfault in mex example code.
Rik <rik@octave.org>
parents:
17791
diff
changeset
|
24 mexCallMATLAB (nlhs, plhs, nrhs-1, (mxArray**)prhs+1, str); |
5864 | 25 |
26 mxFree (str); | |
27 } |