Sorry:
printf("\nactive_wifis = %i\n\n", *active_wifis);
On 12/10/2015 09:30 AM, aitor_czr wrote:
> Hi Edward,
>
> The value of the integer parameter 'active_wifis', passed by reference
> to 'getRadiatingWifiList' is lost. I added the following line 232:
>
> [....]
>
> *active_wifis = -1;
> char* tmp_buffer = scan_buffer;
> printf("\nactive_wifis = %i\n\n", active_wifis); /***** ADDED LINE ****/
> while((scan_buffer = fgets(scan_buffer, 1024, shell_reader)))
> {
> z++;
> if (z == 1)
> active_wifi_list = calloc(sizeof(void*), 10);
>
> [....]
>
> And this is what i get running ./backend 10:
>
> # ./backend 10
>
> active_wifis = -877165076
>
> *** Error in `./backend': realloc(): invalid pointer:
> 0x00007fff124a3424 ***
> Aborted
>
> Cheers,
>
> Aitor.
>
> On 12/06/2015 03:19 PM, Edward Bartolo wrote:
>> Hi Aitor,
>>
>> This is my latest edit of the code so that memory allocations are done
>> when needed instead of the iteration just before more memory is
>> required.
>>
>> The edited code:
>> if (z == 1)
>> active_wifi_list = calloc(10, sizeof(void*));
>> else if ((z - 1) % 20 == 0)
>> active_wifi_list = realloc(active_wifis, (((z - 1)/2) + 10)*sizeof(void*));
>>
>>
>> Edward
>>
>> On 06/12/2015, aitor_czr<aitor_czr@???> wrote:
>>> >Hi Edward,
>>> >
>>> >I will try it later, thanks:)
>>> >
>>> > Aitor.
>>> >
>>> >On 12/06/2015 01:10 PM, Edward Bartolo wrote:
>>>> >>Hi Aitor,
>>>> >>
>>>> >>I edited the code as follows:
>>>> >>
>>>> >> if (z == 1)
>>>> >> active_wifi_list = calloc(10, sizeof(void*));
>>>> >> else if (z % 20 == 0)
>>>> >> active_wifi_list = realloc(active_wifis, ((z/2) + 10)*sizeof(void*));
>>>> >>
>>>> >>Please, if you can run the code and reply back whether it worked. My
>>>> >>neighbourhood has less than 10 active wifi repeaters.
>>>> >>
>>>> >>Edward