Error when calling the mexFunction
Show older comments
I have build the mexFunction for this source code. However, I have got this error when I call the main function
argc 3
argv --tfError using callFun
main function causes an error
#include <mex.h>
#include <matrix.h>
#include<stdio.h>
#include <math.h>
#include <limits.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "ants.h"
#include "utilities.h"
#include "InOut.h"
#include "TSP.h"
#include "timer.h"
#include "ls.h"
// ========================================================================
/* --- main program ------------------------------------------------------ */
// ========================================================================
int callFun(int argc, char *argv[]){
printf ( "\nargc %d",argc);
printf ( "\nargv %s",argv[1]);
long int i;
start_timers();
}
// ========================================================================
/* --- mex function----------------------------------------------------- */
// ========================================================================
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
int argc = 0;
char **argv;
int i, result;
argc = nrhs;
argv = (char **) mxCalloc( argc, sizeof(char *) );
for (i = 0; i < nrhs; i++){
if( !mxIsChar( prhs[i] ) ){
mexErrMsgTxt("Input must be of type char.");
return;
}
argv[i] = mxArrayToString( prhs[i] );
}
result = callFun( argc, argv );
for( i=argc-1; i<=0; i-- )
mxFree( argv[i] );
mxFree( argv );
if( result )
mexErrMsgTxt("main function causes an error");
}
Call the function:
callFun('callFun','--tf', 'tsp',
the problem is in this line:
printf ( "\nargv %s",argv[1]);
, but, I could not understand why?
Accepted Answer
More Answers (0)
Categories
Find more on Write C Functions Callable from MATLAB (MEX Files) in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!