所以目前我有一个返回静态数组的函数,为了提高效率,有没有办法让它返回一个动态数组?
#include <stdio.h>
#include <stdlib.h>
#include "header.h"
int *charpos(char *str, char ch)
{
int *bff, bc, ec, i, strln;
static int ret[255];
bc = 0;
ec = 0;
for(i = 0; str[i] != '\0'; i++)
;
strln = i;
for(i = 0; i <= strln; i++)
{
if(str[i] == ch)
ec++;
}
bff = malloc(sizeof(int)*ec);
if(sizeof(bff) > sizeof(ret))
{
free(bff);
return 0;
}
for(i = 0; i <= 255; i++) ret[i] = '\0';
for(i = 0; i <= strln; i++)
{
if(str[i] == ch)
{
ret[bc] = i;
bc++;
}
}
free(bff);
return ret;
}