How to calculate the lenght of a dynamic string array?

Viewed 30

I'm reformulating the question previously posted the much cleaner I can. I've a dynamic string array of 32 element. Supposing that I want to create a function that can calculate the number of strings inside this array, how can I do it? I know that there are 32 strings, but I need a brand new function that can calculate this number (obviously without knowing it). The function I implemented is:

int array_lenght(char **m){

    int i = 0;

    
    while(m[i] != NULL){
                printf("%s\t%d\n", m[i],i);
        i++;
    }

    return i;

}

This function doesn't calculate correctly the lenght (it returns 548) when I call it:

fp = fopen(file_path, "r");
if (fp == NULL)
    exit(EXIT_FAILURE);

char **all_samples = malloc(i * sizeof(char *));

i = 0;
while ((read = getline(&line, &len, fp)) != -1)
{
    if (strstr(line, slave) != NULL)
    {
        all_samples[i] = malloc(sizeof(*line) * (len + 1));
        all_samples[i] = line;
        line = NULL;
        i++;
    }
}

fclose(fp);

int x =    array_lenght(all_samples);
printf("%d\n", x);

I suppose that the error is pure theorical...but in this case, how can I calculate the number of strings? Is there a way? If you need it, I paste the file I populate the array from (I only consider the strings containing 192.168.101.2):

2022-09-15 08:03:44.509094 -IP 192.168.101.2 -RSSI 540460 -AGC -6 -AUTH 1 
2022-09-15 08:03:44.509646 -IP 192.168.101.11 -RSSI 0 -AGC 0 -AUTH 1 
2022-09-15 08:03:44.815323 -IP 192.168.101.2 -RSSI 594612 -AGC -6 -AUTH 1 
2022-09-15 08:03:44.845434 -IP 192.168.101.11 -RSSI 0 -AGC 0 -AUTH 1 
2022-09-15 08:03:45.095573 -IP 192.168.101.2 -RSSI 540927 -AGC -6 -AUTH 1 
2022-09-15 08:03:45.173306 -IP 192.168.101.11 -RSSI 0 -AGC 0 -AUTH 1 
2022-09-15 08:03:45.379868 -IP 192.168.101.2 -RSSI 540802 -AGC -6 -AUTH 1 
2022-09-15 08:03:45.505331 -IP 192.168.101.11 -RSSI 428664 -AGC 0 -AUTH 1 
2022-09-15 08:03:45.661154 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:45.804758 -IP 192.168.101.11 -RSSI 428730 -AGC 0 -AUTH 1 
2022-09-15 08:03:45.994029 -IP 192.168.101.2 -RSSI 540421 -AGC -6 -AUTH 1 
2022-09-15 08:03:46.134078 -IP 192.168.101.11 -RSSI 426080 -AGC 0 -AUTH 1 
2022-09-15 08:03:46.321605 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:46.415558 -IP 192.168.101.11 -RSSI 437284 -AGC -6 -AUTH 1 
2022-09-15 08:03:46.698946 -IP 192.168.101.11 -RSSI 428671 -AGC 0 -AUTH 1 
2022-09-15 08:03:46.646122 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:46.983698 -IP 192.168.101.2 -RSSI 540690 -AGC -6 -AUTH 1 
2022-09-15 08:03:46.983212 -IP 192.168.101.11 -RSSI 437615 -AGC -6 -AUTH 1 
2022-09-15 08:03:47.261744 -IP 192.168.101.2 -RSSI 661006 -AGC -6 -AUTH 1 
2022-09-15 08:03:47.312247 -IP 192.168.101.11 -RSSI 428691 -AGC 0 -AUTH 1 
2022-09-15 08:03:47.545306 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:47.641418 -IP 192.168.101.11 -RSSI 436717 -AGC -6 -AUTH 1 
2022-09-15 08:03:47.921869 -IP 192.168.101.11 -RSSI 437122 -AGC -6 -AUTH 1 
2022-09-15 08:03:47.879902 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:48.205513 -IP 192.168.101.11 -RSSI 428313 -AGC 0 -AUTH 1 
2022-09-15 08:03:48.214703 -IP 192.168.101.2 -RSSI 540811 -AGC -6 -AUTH 1 
2022-09-15 08:03:48.538789 -IP 192.168.101.2 -RSSI 882404 -AGC -6 -AUTH 1 
2022-09-15 08:03:48.487909 -IP 192.168.101.11 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:48.823463 -IP 192.168.101.11 -RSSI 428665 -AGC 0 -AUTH 1 
2022-09-15 08:03:48.819564 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:49.099954 -IP 192.168.101.11 -RSSI 437749 -AGC -6 -AUTH 1 
2022-09-15 08:03:49.156491 -IP 192.168.101.2 -RSSI 541164 -AGC -6 -AUTH 1 
2022-09-15 08:03:49.431244 -IP 192.168.101.11 -RSSI 428395 -AGC 0 -AUTH 1 
2022-09-15 08:03:49.480335 -IP 192.168.101.2 -RSSI 540957 -AGC -6 -AUTH 1 
2022-09-15 08:03:49.809690 -IP 192.168.101.2 -RSSI 540509 -AGC -6 -AUTH 1 
2022-09-15 08:03:49.762480 -IP 192.168.101.11 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:50.091427 -IP 192.168.101.2 -RSSI 540468 -AGC -6 -AUTH 1 
2022-09-15 08:03:50.098687 -IP 192.168.101.11 -RSSI 437183 -AGC -6 -AUTH 1 
2022-09-15 08:03:50.373174 -IP 192.168.101.2 -RSSI 662260 -AGC -6 -AUTH 1 
2022-09-15 08:03:50.421728 -IP 192.168.101.11 -RSSI 428635 -AGC 0 -AUTH 1 
2022-09-15 08:03:50.703115 -IP 192.168.101.11 -RSSI 428516 -AGC 0 -AUTH 1 
2022-09-15 08:03:50.654894 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:50.991763 -IP 192.168.101.2 -RSSI 540766 -AGC -6 -AUTH 1 
2022-09-15 08:03:50.987840 -IP 192.168.101.11 -RSSI 0 -AGC 0 -AUTH 1 
2022-09-15 08:03:51.267729 -IP 192.168.101.2 -RSSI 541238 -AGC -6 -AUTH 1 
2022-09-15 08:03:51.324198 -IP 192.168.101.11 -RSSI 428599 -AGC 0 -AUTH 1 
2022-09-15 08:03:51.550273 -IP 192.168.101.2 -RSSI 540355 -AGC -6 -AUTH 1 
2022-09-15 08:03:51.596386 -IP 192.168.101.11 -RSSI 428572 -AGC 0 -AUTH 1 
2022-09-15 08:03:51.834397 -IP 192.168.101.2 -RSSI 540468 -AGC -6 -AUTH 1 
2022-09-15 08:03:51.883064 -IP 192.168.101.11 -RSSI 428476 -AGC 0 -AUTH 1 
2022-09-15 08:03:52.115307 -IP 192.168.101.2 -RSSI 617817 -AGC -6 -AUTH 1 
2022-09-15 08:03:52.164582 -IP 192.168.101.11 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:52.399535 -IP 192.168.101.2 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:52.493289 -IP 192.168.101.11 -RSSI 428681 -AGC 0 -AUTH 1 
2022-09-15 08:03:52.728810 -IP 192.168.101.2 -RSSI 540835 -AGC -6 -AUTH 1 
2022-09-15 08:03:52.775356 -IP 192.168.101.11 -RSSI 0 -AGC -6 -AUTH 1 
2022-09-15 08:03:53.011567 -IP 192.168.101.2 -RSSI 524378 -AGC -6 -AUTH 1 
2022-09-15 08:03:53.104960 -IP 192.168.101.11 -RSSI 428405 -AGC 0 -AUTH 1 
2022-09-15 08:03:53.341175 -IP 192.168.101.2 -RSSI 540829 -AGC -6 -AUTH 1 
2022-09-15 08:03:53.388389 -IP 192.168.101.11 -RSSI 428514 -AGC 0 -AUTH 1 
2022-09-15 08:03:53.623917 -IP 192.168.101.2 -RSSI 541087 -AGC -6 -AUTH 1 
2022-09-15 08:03:53.673454 -IP 192.168.101.11 -RSSI 437623 -AGC -6 -AUTH 1 
2022-09-15 08:03:53.906941 -IP 192.168.101.2 -RSSI 540699 -AGC -6 -AUTH 1 
2022-09-15 08:03:53.954550 -IP 192.168.101.11 -RSSI 0 -AGC 0 -AUTH 1 
0 Answers
Related