malloc

malloc in C, but use multi-dimensional array syntax

Is there any way to malloc a large array, but refer to it with 2D syntax? I want something like: int *memory = (int *)malloc(sizeof(int)*400*200); int MAGICVAR = ...; MAGICVAR[20][10] = 3; //sets the (200*20 + 10)th element UPDATE: This was important to mention: I just want to have one contiguous block of memory. I just don't want to...

errors concatenating bytes from a block of bytes using memcpy

On occasion, the following code works, which probably means good concept, but poor execution. Since this crashes depending on where the bits fell, this means I am butchering a step along the way. I am interested in finding an elegant way to fill bufferdata with <=4096 bytes from buffer, but admittedly, this is not it. EDIT: the error ...

Why should I avoid using malloc in c++?

Possible Duplicates: What is the difference between new/delete and malloc/free? In what cases do I use malloc vs new? Why should I avoid using malloc in c++? ...

In C are malloc(256) and malloc(sizeof(char)*256) equivalent?

I see that people often write C code such as: char *ptr = malloc(sizeof(char)*256); Is that really necessary? The standard says that sizeof(char)==1 by definition, so doesn't it make sense just to write: char *ptr = malloc(256); Thanks, Boda Cydo. ...

can memory corruption be caused by invalid *reading* freed memory?

I'm getting *** glibc detected *** (/my/program/...): malloc(): memory corruption: 0xf28000fa *** I've run under valgrind, which reports cases of reading memory that has been freed, but no cases of illegal memory writes. Could reading freed memory cause memory corruption? If not, any suggestions where else to look beyond the valgri...

When must I use malloc to allocate memory?

1) For which datatypes must I allocate memory with malloc? For types like structs, pointers, except basic datatypes, like int For all types? 2) Why can I run this code? Why does it not crash? I assumed that I need to allocate memory for the struct first. #include <stdio.h> #include <stdlib.h> typedef unsigned int uint32; typedef st...

How can I use Git's malloc wrapper in my code?

I want to use the git's malloc and realloc wrappers in my code for OOM(out of memory) conditions. Here is its code: void *xmalloc(size_t size) { void *ret = malloc(size); if (!ret && !size) ret = malloc(1); if (!ret) { release_pack_memory(size, -1); ret = malloc(size); ...

MemoryError when using imaplib fetch

Hi, Please help me, I am getting MemoryError when trying to fetch a specific email. This is the error message: python(23838,0x1888c00) malloc: *** vm_allocate(size=3309568) failed (error code=3) python(23838,0x1888c00) malloc: *** error: can't allocate region python(23838,0x1888c00) malloc: *** set a breakpoint in szone_error to debug ...

freeing substring in c - loop

I'm trying to get a sub-string for each member of the struct 'structs' and then assign that sub-string to a new member of the temp_struct. The problem I'm having is how to free the sub-string on each iteration, for some reason the code runs, however valgrind throws an Invalid read of size 1, which I assume I'm reading off the block of m...

Is it better to allocate memory in the power of two?

When we use malloc() to allocate memory, should we give the size which is in power of two? Or we just give the exact size that we need? Like //char *ptr= malloc( 200 ); char *ptr= malloc( 256 );//instead of 200 we use 256 If it is better to give size which is in the power of two, what is the reason for that? Why is it better? Thanks...

freeing substring without doing double free in c

Yesterday I asked a similar question regarding how to free allocated memory for a sub-string. Now I have one more question regarding the same problem (involving a set of conditions), how could I free the following sub-string without doing double free? #include <stdio.h> #include <stdlib.h> #include <string.h> struct st_ex { char pr...

Windows memory allocation questions.

I am currently looking into malloc() implementation under Windows. But in my research I have stumbled upon things that puzzled me: First, I know that at the API level, windows uses mostly the HeapAlloc() and VirtualAlloc() calls to allocate memory. I gather from here that the Microsoft implementation of malloc() (that which is included ...

Is ucLibc malloc thread safe?

Is ucLibc malloc thread safe? ...

How do I allocate memory and determine array sizes dynamically in C?

I am trying to teach myself C from a python background. My current mini-problem is trying to do less hard-coding of things like array lengths and allocate memory dynamically based on input. I've written the following program. I was hoping for suggestions from the community for modifying it in the following ways: 1.) Make first and ...

Why does pointer to malloc'd area fail unless copied?

I have a pointer to a struct. I call a routine that determines whether I need this struct and allocates space for it using malloc, returning the pointer to that area or zero if unused. struct node *node_p; node_p = need_this(); This works and I can properly access all the elements of the struct. One of the elements of struct node is *...

C: MSVC2008 Malloc and crashing program

This question might be remedial but I am having a lot of trouble with malloc. Why does my progrm crash upon freeing memory? #include <stdlib.h> #include <malloc.h> int main(int argc, char *argv[]) { int *arr[10]; void *mem = malloc( 10 * sizeof(int) ); int i; for(i=0;i<=9;i++) { arr[i] = (int*) mem + i*sizeof(int...

I'm looking for an efficient C object serialization Mechanism.

I'm looking for an efficient way to implement a serialization mechanism in C. I know it would be simple to just store the data in JSON, for example, and then reinitialize everything during the parsing. But I'm wondering if it is possible (or worth it) to write something that will just take my struct (containing dynamically allocated da...

c++: local array definition versus a malloc call

What is the difference between this: somefunction() { ... char *output; output = (char *) malloc((len * 2) + 1); ... } and this: somefunction() { ... char output[(len * 2) + 1]; ... } When is one more appropriate than the other? thanks all for your answers. here is a summary: ...

c malloc question

#include<stdlib.h> #include<stdio.h> int main(){ int row; int col; int i=1; double ** doubleNode; // *(*(doubleNode+row)+coln) doubleNode=malloc(sizeof(double)*4); *doubleNode=malloc(sizeof(double *)*4); for(row=0; row <4; row++){ for(col =0; col<4;col++){ *(*(doubleNode+row)+col)=i; i++; } } free(doubleNode)...

Malloc and scanf

I'm fairly competent in a few scripting languages, but I'm finally forcing myself to learn raw C. I'm just playing around with some basic stuff (I/O right now). How can I allocate heap memory, store a string in the allocated memory, and then spit it back out out? This is what I have right now, how can I make it work correctly? #inclu...