तो फिलहाल मेरे पास एक फ़ंक्शन है जिसे मैंने स्थिर सरणी लौटा दी है, क्या यह दक्षता के लिए गतिशील सरणी बनाने का कोई तरीका है?क्या मेरे फ़ंक्शन को गतिशील सरणी वापस करने का कोई तरीका है?
#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;
}
किसी फ़ंक्शन से वापस लौटाया जा सकता है, क्या सी में गतिशील सरणी जैसी कोई चीज़ है? क्या आप पॉइंटर का मतलब था, इसके बजाए? Arrays पॉइंटर्स नहीं हैं। http://eli.thegreenplace.net/2009/10/21/are-pointers-and-arrays-equivalent-in-c/ –
"गतिशील सरणी" गतिशील स्मृति आवंटन का तात्पर्य है, जो अक्सर गैर- गतिशील (स्थिर या स्वचालित) स्मृति आवंटन। तो, आप किस "दक्षता" के बारे में बात कर रहे हैं? – AnT
संभवतः स्मृति दक्षता। –