But the main program can not read and output some confusing characters(such as 館?,\u9928\u0017 Look like memory leak).
How to solve it?
1.bas
Code: Select all
Extern "C" Lib "split"
Declare function split(arr as zstring ptr, str as zstring ptr,del as const zstring ptr)as zstring ptr
End Extern
dim a as zstring ptr
a=callocate(10,sizeof(zstring ptr))
dim st as zstring ptr
st=allocate(len("hello|fghfgh"))
*st="hello|fghfgh"
print *split(a,st,"|")
Code: Select all
gcc -c split.c -o split.o
ar rcs -o libsplit.a split.o
Code: Select all
#include<string.h>
#include<malloc.h>
#include<stdio.h>
extern char** split(char **arr, char *str, const char *del);
char** split(char **arr, char *str, const char *del)
{
char *s =NULL;
s=strtok(str,del);
printf("LIB address=%llu\n",(unsigned long long)s);
int i=0;
while(s != NULL)
{
arr[i]=(char*)malloc(sizeof(char)*strlen(s));
i++;
*arr++ = s;
printf("PTR %llu\n",(unsigned long long)&arr[i]);
s = strtok(NULL,del);
}
return &arr[0];
}
Run:
makefile
fbc 1.bas
./1.exe