#include <stdlib.h>
#include <string.h>
#include "mathlink.h"
/* check the incoming string size to allocate enough memory to store the string */
void f(MLINK lp)
{
int incoming_bytes;
char *string;
const char *mlstring;
switch(MLGetType(lp))
{
case MLTKSTR:
if(! MLBytesToGet(lp, &incoming_bytes))
{ /* unable to get the size of the string */ }
string = (char *)malloc(incoming_bytes + 1);
if(string
(char *)0)
{ /* memory allocation failed */ }
if(! MLGetString(lp, &mlstring))
{ /* unable to get the string from lp */ }
memcpy(string, mlstring, incoming_bytes);
*(string + incoming_bytes) = '\0';
break;
/* ... */
};
/* ... */
}