C :: Keep Track Of Size Of Blocks Of Memory That A Pointer Points To - Malloc Is Stuck On 8

Jan 8, 2014

I'm trying to keep track of the size of blocks of memory that a pointer points to. No matter what I do, this code below always outputs the integer 8.

If I change 1000 to 5, I still get 8. If I change it to 0, I get 8... If I change it to -1, I get 8. If I change int *a to double *a, I get 8. If I take away the & symbol, I get 8. If I use *& instead, I get 8.

Why? I want it to output 1000. If I change that to 500, I want it to output 500.

int *a;
a = malloc(1000 * sizeof(int));

int j = sizeof(&a);
printf("%d", j);

I want to build my skills where I can allocate, inspect and change memory sizes.

View 4 Replies


ADVERTISEMENT

C :: Call Only One Time Malloc At The Start Of Program - Memory Size Is Growing

Jan 26, 2013

I have a program which call only one time malloc at the start of the program. When running, I see with 'process-explorer.exe' that memory is growing in little steps. Is this normal? why?

Using Windows 7

View 5 Replies View Related

C :: Malloc Is Used To Allocate Free Memory To A Pointer

Nov 5, 2014

There is a part in the lesson that explains how malloc is used to allocate free memory to a pointer and gives us 2 examples:

Code:

float *ptr = malloc( sizeof(*ptr) ); and Code: float *ptr;
ptr = malloc( sizeof(*ptr) );

From my logic in the first case we allocate the memory to *ptr and in the second to ptr.

It's a bit confusing, am I missing something?

View 14 Replies View Related

C/C++ :: Stuck On Using Pointers With Malloc

Apr 18, 2015

So this is my first attempt at actually writing code, I have a little basic core functionality set up and I'm 99% sure I'm doing something very fundamentally wrong with pointers.

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
struct Creature {
int pow;
int tou;

[code] ....

Error generated:

magic.c: In function "main":
magic.c:71:26: warning: initialization from incompatible pointer type [enabled by default]
struct Creaturedb *db = Initialize_creaturedb;
^
magic.c:72:22: warning: initialization from incompatible pointer type [enabled by default]
struct Player *pl = Initialize_player;
^

View 3 Replies View Related

C++ :: Values Getting Stuck In Memory?

Apr 4, 2013

I have a school project where I have to create a class with 2 attributes that default to 1. To verify that they are at 1, I have a cout before any user inputs or value manipulation. It works for the most part. What happens is that if I change the defaults to 17, the cout will retain the old values until I have an unsuccessful build (remove a semicolon from the end of the line). When I have a successful build (put that semicolon back), the cout displays the changed values. Change the values back to 1 and the same thing happens again until I have an unsuccessful build then a successful build. Are the old values getting stuck in memory somewhere?

// Rectangle.h
// Chapter 9_Problem 9.11_Page 412
#include <iostream>
using namespace std;
#ifndef RECTANGLE_H
#define RECTANGLE_H
class Rectangle // Rectangle class {
public:
Rectangle(double = 17, double = 17); // default constructor setting values to 1

[code]....

View 10 Replies View Related

C++ :: Finding Size Of Array Using Try Catch Blocks?

Oct 8, 2013

I am trying to find the size of an array using a Try-Catch block. As seen on the code, I want the error to be caught when the index is out of range in "while" loop but at each time, program stops working.

int x[] = {34,5,1,536,2};
int length = 0;
int tt = 0;
try {

[Code] ....

View 6 Replies View Related

C :: Creating Linked List Of Memory Blocks

Apr 22, 2014

I am creating linked list of memory blocks. Allocate a block of 512 bytes and insert into the first node of list. then Allocate a 2nd block of same size and add to the list. now free each block from the list.

View 14 Replies View Related

C++ :: Does Pointer Keep Track Of Time Stamps When It Is Created

Oct 14, 2013

does a pointer keep track of time stamps when it is created? i am trying to use it to create a table that can store the access count and the temporal locality at the same time.

View 5 Replies View Related

C :: Two Stumbling Blocks - Determine Size Of Rows To Create In Program

Apr 18, 2014

Working on an assignment and I've hit TWO stumbling blocks. I now have to take the first line from a .txt file and use that number to determine the size of rows to create in my program. I am using fscanf but the program hangs. How can I read in this number, store it and use it in a for loop?

The second issue is after reading this number I have to print each number in the .txt file under a different column. (Note that it skips a line after reading the row count.) The .txt file is set up as follows:

9 1 3 6 4 7 8 8 6 1

The output should look sort of like:

Number ​1 3 6 4 7 8 8 6 1

Here's my attempt:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

typedef struct{
int number;

[Code] .......

View 2 Replies View Related

C++ :: Get Pointer That Iterator Points To And Store In Pointer Variable?

Apr 19, 2014

I'm making a system like twitter for class called ShoutOut.com I want to be able to get the PublicShoutOut pointer pointed to by the start iterator and assign it to firstShoutOutToDisplay and secondShoutOutToDisplay because I need that in order to pass the pointers to one of my functions. When I step through the debugger the values in start are all default values like "" and so are the values in this->firstShoutOutToDisplay but the message that start points to is being output just fine.

EDIT: got rid of irrelevant code. Am I using the correct syntax to do this?

if (start != finish) {
//getting these because a shoutout needs to be passed to the function that displays
//options for a shoutout
this->firstShoutoutToDisplay = (*start);

[Code] ....

View 2 Replies View Related

C :: Malloc Memory Allocation?

Oct 17, 2014

Code:
int *p, ar[100];
p = (int *)malloc(sizeof ar);

.. *p is a pointer variable, but what means another * here --> (int *)?

View 3 Replies View Related

C++ :: Web Server Malloc Memory Error

Dec 1, 2014

I am writing a very basic database in C++ and I am accessing the data from a web browser. I am using the opensource Mongoose web server code....

I have an issue...

The way the DB works is this: on starting, the DB loads a json file of all of the data into it. I have a class called DatabaseLoader that does this - it is the class that gets rewritten depending on the data structure of the json.

This is passed to vectors (vector<Node*> and vector<Edge*>) as references from Graph object.

Once the DatabaseLoader has finished it can be destroyed and any memory allocated objects it created (except the ones in those two vectors).

From then on, the Graph object is in charge of all of the elements in the database that are stored in the two vectors. When the user browses to htpp://127.0.0.1:8000 they see the json representing each object in the vectors.

All good so far....

However, when I repeatedly hit refresh in my browser (and call me insane...) at quite a fast speed I get this error:

Code:
main(29855,0x7fff76763310) malloc: *** error for object 0x7f98b2829408: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
[1] 29855 abort ./main testing.json

It seems to me this would be if I tried to "delete" and object twice, or if one of my objects was overwriting memory somewhere. However I am not recreating anything, I am just looping over the vectors and printing out the content. When I refresh slowly, I dont see this happen - i did it quite a lot of times, but when I do it fast I think it is happening.

So is there any possibility of me hitting the c++ web server to quickly and it is trying to process the data twice, causing some sort of memory error - i.e do I need to implement threading or something??

I can paste code, but there is quite a lot now....

View 1 Replies View Related

C++ :: Memory Points Not Working?

Jul 23, 2013

This is the source code.
--------------------------------------------------------------------------------

#include <iostream>
#include <windows.h>
using namespace std;
int main(){

[Code]....

When I type a word, it gives me the first letter of the word, then a symbol, or nothing.

View 3 Replies View Related

C :: Malloc Memory Freed When Function Exits?

May 16, 2014

does memory reserved by malloc() get freed when the function it is called in finishes?

View 6 Replies View Related

C :: Malloc - Verifying Amount Of Memory Allocated

Sep 7, 2013

How can I view the number of bytes that have been allocated by using the malloc function?I tried:

mem = (float*)malloc(num*sizeof(float));
printf("The amount of memory allocated using malloc is %d.", mem);

Note: The variable "num" in my program is equal to 7.But every time I run the program, this value changes.

View 10 Replies View Related

C :: Free Not Working After Malloc Was Used To Allocate Memory

Jun 13, 2014

Consider this program:

Code:

// sb_string class v1.04

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct sb_string {

[Code] ....

And here is the output I got:

Code:
[harshvardhan@hari-rudra] ~/Desktop% gcc49 -o test test.c
[harshvardhan@hari-rudra] ~/Desktop% ./test
-before Value of len = 1
(in_function)-before Value of len = 1
(in_function)-after Value of len = 1

-after Value of len = 1 I was trying to make a little easier to work with string. Once the memory is allocated by malloc via sb_init() function, the sb_massacre function wasn't working to deallocate the memory. I had used multiple versions of gcc and clang but the result is same.

View 4 Replies View Related

C++ :: KLU Library - How To Use Operator New Instead Of Malloc To Allocate Memory

May 11, 2012

I have a question about the KLU library for LU factorization of sparse matrices. The KLU library accepts a pointer to a memory allocator function, by default it is malloc(). Then it uses this pointer to allocate the memory required.

I want to extend the library and I now have object of classes. I want to use the operator new instead of malloc to allocate the memory. In the same time I want the new operator to call the constructors of the objects. Is there a way to do it?

View 14 Replies View Related

C :: How To Use Malloc Or Calloc To Create Array In Dynamic Memory

Mar 10, 2014

What is wrong with my function why does it spit out huge numbers? And how do i use malloc or calloc to create an array in dynamic memory, and return a pointer to this array

Code:

#include <stdio.h>#include <stdlib.h>
int fibonacci(int n)
{
int i;
long int fib[40];
fib[0]=0;
fib[1]=1;
for(i=2;i<n;i++){
fib[i] = fib[i-1] + fib[i-2];

[Code]....

View 12 Replies View Related

C++ :: Using Malloc / Free Multiple Times Leaves Less Memory?

Apr 17, 2014

My application calls malloc in multiple subroutines, finally releasing all using free. This is done using my zalloc library (see my other post: [URL] .....

Somehow, when the applications tries to detect the available ammount of memory at the end of the test (allocating, freeing, testing), the freemem function gives me about 4-6MB less memory than at the start of the test? (out of 21MB available on the device at the start).

All memory is allocated and freed using the malloc/free routines within the library, with the exception of the SDL functions, which are registered externally on allocation and release.

View 3 Replies View Related

C++ :: Malloc Virtual Memory - Handling Page Movements?

Jul 23, 2012

When does malloc() return null ? I want to allocate a big virtual memory which can not possibly fit on RAM, so most of it will be stored on disk. I am going to access the data sequentially so at any one time the data I am working on will fit in RAM. So I am hoping the OS will move the required pages in and out of disk. I can achieve this behavior manually by allocating the required blocks on RAM but this is rather tedious. Say I have an array a[100][10000000000]. At any one time I am working only on a[i-1][], a[i][], a[i+1][] which can fit in RAM but not the whole array. So how do I allocate the array so that I can work on it using for loops for(i=0;i<100;i++) without handling the page movements myself?

View 2 Replies View Related

C :: Malloc Pointer To Arrays

Jan 6, 2014

I am confused whether 'malloc'ing an array of pointers and pointer to a group of arrays are the same.

Suppose I need an integer pointer to a group of arrays of 2 elements each.

int (*LR)[2];

So to dynamically allocate this pointer for M number of arrays suppose, then what is the correct syntax?

int M;
scanf("%d",&M);
int (*LR)[2];
LR = (int*)malloc(2*sizeof(int));

Whether this is correct??

View 14 Replies View Related

C++ :: Returning Pointer That Points To Array

Mar 5, 2013

I have a program that is trying to find all factors of an integer given. It needs to be done in a recursion function. Right now i have code similar to just getting the prime factors of a integer.

unsigned int * find_factors_using_recursion(unsigned int x ) {
unsigned int * factor = new unsigned int[];//do i put x in here ?
for(unsigned int i = 2; i < x; ++i) {
if(x % i == 0) {
find_factors_using_recursion(x / i);
*factor = (factor[i] = i);
} }
return factor;
delete [] factor;
}

When i cout the *factor = (factor[i] = i) it gives me the prime numbers of the integer passed into the function but when I return the pointer it only returns one of the prime numbers. I'm new to c++, how to return pointers from functions that would be great with an example to go with it.

View 10 Replies View Related

C++ :: Valgrind Malloc Error - Pointer Being Freed Was Not Allocated

Oct 26, 2014

==39800== Invalid free() / delete / delete[] / realloc()
==39800== at 0x4D9D: free (vg_replace_malloc.c:477)
==39800== by 0x10000C471: Tokenizer::~Tokenizer() (in ./a.out)
==39800== by 0x10000C424: Tokenizer::~Tokenizer() (in ./a.out)
==39800== by 0x100001B8B: main (in ./a.out)
==39800== Address 0x10002a778 is 8 bytes inside a block of size 7,208 alloc'd

[Code] ....

View 4 Replies View Related

C++ :: Validity Of New / Delete Pair (or Malloc / Free) After Pointer Casting

Dec 22, 2012

Goal: To allocate some memory as a char*, read in some binary data, re-interpret it as a float* and then free the memory.

My code looks like:

void someFunction(float* &result) {
char * tmp = new char[1000];
//...Fill the char buffer here...
result = (float*)tmp; //Reinterpret binary data as floats

[Code] ....

Is the cast back to char* necessary on the red line (or could I have validly left it as float*)? Would it be different if I had written char * tmp = (char*)malloc(sizeof(char)*1000); on the blue line (and correspondingly used free (char*)floatData on the red line?

View 9 Replies View Related

C++ :: Pointer Passed Into A Function Looses Address It Points To

Mar 7, 2013

Sem is a pointer to semantic which is a struct type variable. I pass the sem into function yylex so i can fill the semantic.i and semantic.s(s points to an array). The problem is that when sem->i = a; is used inside yylex function, sem->s stops showing to the array.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <iostream>
using namespace std;
union SEMANTIC_INFO

[Code] ...

View 2 Replies View Related

C++ :: Memory Size Of Vector Elements

Apr 9, 2014

I had a question about memory allocation/how iterators work for a std::vector<foo> of a user defined class 'foo'. Say foo contains variables of variable size, so that each member of the std::vector<foo> does not require the same amount of memory space.

Does c++ allocate the same amount of memory for each element, equal to the amount of memory required for the largest element? Or does it use some sort of array of pointers pointing to the location of each element in the vector to make the iterator work? Or does it use some other method? I am wondering because I wrote a code which reads data from a binary files and stores most of it in std::vectors.

The code seems to be using significantly more memory than the sum of the size of all the binary files, and I am using vectors made up of the datatype within the binary files (float). So I was wondering if internally the code was allocating space for each vector element which is the size of the largest element as a way to handle indexing/iterators. I ran my code through a memory leak checker and it found no errors.

View 16 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved