malloc and free: pointer being freed was not allocated

Arc676

I've been trying to be more "memory-aware" in my C programming when I found out about the malloc method and similar memory management methods. However, when I tried to use realloc to allocate as little memory as possible to a char* instance in my program, I found that it wasn't holding as much data as I thought it would.

Here is my code:

int foo(char * arg){
    if(condition){
        //code here
    }else if(other_condition){
        char * cmd = malloc(5);
        fgets(cmd,sizeof(cmd),stdin);
        //more code here
        if(another_condition){
            //more code
            cmd = realloc(cmd,new_size) //once in this if block, but also once in another block
            fgets(cmd,sizeof(cmd),stdin);
            //more code
        }
        //more else-if blocks here
        free(cmd)
    }
    //more else-if blocks here
}

To be specific, in the above code snippet, new_size was 255, although it has been set to other sizes in other places. The problem is that when I run the program I only get 7 letters of my input.

Example output:

...
Enter filename: document1
Loading file "documen"
Load failed
...
(here the next time fgets is called it fails because "t1" is not valid input for the program)

I understand that it's receiving "t1" because I'm not clearing the input buffer, but what I want to solve is the fact that I'm only receiving the first 7 characters of the input. If I call sizeof(cmd) in the middle, it tells me that the memory occupied by cmd is 8. I also tried allocating the memory using char * cmd = malloc(5 * sizeof(char)) and cmd = realloc(cmd,255 * sizeof(char)) but it didn't solve the problem. I should probably mention that if I declare the variable using the char cmd[255] syntax and I don't call malloc, realloc, or free anywhere this problem no longer comes up.

timrau
fgets(cmd,sizeof(cmd),stdin);

Here cmd is a char* instead of a char[]. Thus, its size is always the size of a pointer, instead of the array size.

You should keep track of the chunk size allocated by yourself.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

malloc and free: pointer being freed was not allocated

From Dev

"pointer being freed was not allocated"

From Dev

"Pointer being freed was not allocated." error after malloc, realloc

From Dev

" malloc error pointer being freed was not allocated " error only in simulator:

From Dev

Debugging "malloc error: pointer being freed was not allocated", using gdb

From Dev

C: malloc error-pointer being freed was not allocated

From Dev

"Pointer being freed was not allocated." error after malloc, realloc

From Dev

C: pointer being freed was not allocated -- when calling free

From Dev

C++ Pointer being freed was not allocated. Not calling free

From Dev

delete[] pointer being freed was not allocated

From Dev

pointer being freed was not allocated in C

From Dev

malloc: *** error for object: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug

From Dev

C++: pointer being freed was not allocated

From Dev

C "pointer being freed was not allocated" error

From Dev

C Program Issue "pointer being freed was not allocated"

From Dev

C "pointer being freed was not allocated" error

From Dev

c++ pointer being freed was not allocated error

From Dev

Pointer being freed was not allocated! Cannot be solved

From Dev

Pointer being freed was not allocated even though it was allocated before

From Dev

Pointer being freed was not allocated, dynamic array C++

From Dev

(C++ Error: pointer being freed was not allocated) for linked lists

From Dev

pointer being freed was not allocated(delete one element in an array)

From Dev

Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

From Dev

Pointer being freed was not allocated (while implementing stack as a linked list)

From Dev

"Pointer being freed was not allocated" happen on mac but not on window7

From Dev

Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

From Dev

When I pop, i get "pointer being freed was not allocated" error

From Dev

pointer being freed was not allocated error when deleting reference

From Dev

Pointer being freed was not allocated when implementing Matrix<T> class

Related Related

  1. 1

    malloc and free: pointer being freed was not allocated

  2. 2

    "pointer being freed was not allocated"

  3. 3

    "Pointer being freed was not allocated." error after malloc, realloc

  4. 4

    " malloc error pointer being freed was not allocated " error only in simulator:

  5. 5

    Debugging "malloc error: pointer being freed was not allocated", using gdb

  6. 6

    C: malloc error-pointer being freed was not allocated

  7. 7

    "Pointer being freed was not allocated." error after malloc, realloc

  8. 8

    C: pointer being freed was not allocated -- when calling free

  9. 9

    C++ Pointer being freed was not allocated. Not calling free

  10. 10

    delete[] pointer being freed was not allocated

  11. 11

    pointer being freed was not allocated in C

  12. 12

    malloc: *** error for object: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug

  13. 13

    C++: pointer being freed was not allocated

  14. 14

    C "pointer being freed was not allocated" error

  15. 15

    C Program Issue "pointer being freed was not allocated"

  16. 16

    C "pointer being freed was not allocated" error

  17. 17

    c++ pointer being freed was not allocated error

  18. 18

    Pointer being freed was not allocated! Cannot be solved

  19. 19

    Pointer being freed was not allocated even though it was allocated before

  20. 20

    Pointer being freed was not allocated, dynamic array C++

  21. 21

    (C++ Error: pointer being freed was not allocated) for linked lists

  22. 22

    pointer being freed was not allocated(delete one element in an array)

  23. 23

    Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

  24. 24

    Pointer being freed was not allocated (while implementing stack as a linked list)

  25. 25

    "Pointer being freed was not allocated" happen on mac but not on window7

  26. 26

    Mac Terminal - 'pointer being freed was not allocated' error when opening terminal

  27. 27

    When I pop, i get "pointer being freed was not allocated" error

  28. 28

    pointer being freed was not allocated error when deleting reference

  29. 29

    Pointer being freed was not allocated when implementing Matrix<T> class

HotTag

Archive