C :: For Static Variables When Memory Will Be Allocated?

May 21, 2013

For static variables when the memory will be allocated? During compilation or linking or loading time? In below program i am getting error :

(Error C2099: initializer is not a constant in microsoft visual studio) .

If i initialize x = 10 or any constant it works , why?

Code:
main() {
int i=10;
static int x = i;//error ?
if(x==i)
printf("Equal");

[Code] .....

View 8 Replies


ADVERTISEMENT

C++ :: How Much Memory Allocated

Nov 6, 2014

We have a proprietary third-party library that we make calls into via an API. Through a series of API calls, this library manipulates specific sets of data. Prior to making these calls, there are some API calls that are necessary in order to initialize the library in preparation for a specific set of data. One of the calls tells the library to allocate some memory and then perform whatever initialization is required. This particular API call returns a pointer to char (char*) that is later used as an argument for a few other API calls. My question is... Is there a way, or maybe some kind of trick, to tell exactly how much memory was allocated? It doesn't matter whether or not the solution (if there is one) is C++ related, or some series of OS commands. FYI: We're running on Redhat Linux 6.2 and using GNU C++ 4.4.6.

View 5 Replies View Related

C++ :: Why Cannot Dynamically Allocated Variables Be Named

Mar 25, 2013

I understand why you cant define them but why cant you name them. Or is it that you must always define them in order to name them?

Why do I have to always use a pointer???

Or is it that dynamically allocated variables on allocate space for a type to be stored and not really the variable itself so you must use a pointer???

View 1 Replies View Related

C++ :: How Memory Is Allocated On Stack

Dec 19, 2013

Suppose if i code like this,

while( true ) {
int x;
// do some thing;
// break on some condition match;
}

whether memory is allocated for ints x one time or each time it hits int x.

View 6 Replies View Related

C :: Free Allocated Memory For Structure?

Mar 16, 2014

I'm trying to free allocated memory for structure. It seems like free() gets only pointer and not regular types . my question is basic and simple – is passing pointer to free() frees the pointer or the variable it points at? or both?

View 2 Replies View Related

C++ :: How To Reuse Memory Previously Allocated

Dec 14, 2013

I have a question about memory allocation.I have a function that calls a lot of object constructors, which in return these constructors will allocate a lot of memory.Now, in my program I am sure that if I first call this function , say it will call the constructor of 100 object.If I call this function again and again, I am sure that it will only call the constructor 100 times again, and thus I am sure that the memory allocated in the first call can be reused again.

How can I reuse the memory allocated in the first call?Can I use something like boost:object_pool so that I can tell the pool to restart from the begining and do not allocate extra memory, just use what you already have?

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++ :: Memory Allocated To Vector At Certain Point In Time?

May 7, 2013

I have a pretty big std::vector<matrix>, where matrix is a custom class defined by me. I would like to know how much memory has been allocated to that vector at a certain point in time. Is there any way of doing this in c++?

Or is my only shot, taking a look at the task monitor of windows/unix/whatever at execution time to estimate this?

View 2 Replies View Related

C :: Is Extra Memory Allocated For Storing Address Of Array

Jul 8, 2014

When declaring char array[10], memory is allocated for 10 1-bit memory locations. Is extra memory allocated for storing the address of array[0]? In expressions, is array equivalent to a pointer constant or is it an identifier for a memory cell containing the address of array[0]? In other words, is array a variable or an alias for &array[0]?

View 6 Replies View Related

C/C++ :: Freeing Allocated Memory In Doubly Linked List

Feb 21, 2015

I am having issues freeing memory that I allocated when adding a node to a doubly linked list. I have tried adding free() at the end of the remove function from the list with no luck. I have tried using all sorts of temporary nodes and dummy nodes to free without losing node information. Have tried storing current node, moving to next one, then freeing the old current one, without luck. Everytime I try to free a node it destroys the list. It loses important node information and can no longer operate properly and I am met with all sorts of memory crashes. I will post my add and delete nodes functions here:

/**
* Adds a node to a given list
*
* @param q pointer a a list
* @param node pointer to the node to be added
*/
void list_add(list *q, path *node){
path *pn;
if(!(pn = (path*)malloc(sizeof(*pn)))){
perror("malloc");
exit(1);

[Code] ....

Those free's at the end are to get rid of nodes I malloced in find_path. This find_path works really well when run once lol. It finds shortest path and prints it no problem, but doing it over and over again will be problematic as it is leaking almost every bit of memory it uses />.

So in short, how to free an allocated node when I remove it from a list while still being able to use it? I have tried moving the remove function to different locations like the end of the file and still no luck. I even tried allocating a new current_node each iteration of while loop, using it, then freeing it at the end of the while loop and took out the allocation in the list_add() function. This didn't work either />. How to stop the leakage.

View 8 Replies View Related

C :: Unable To Save A Column Element Into Dynamically Memory Allocated Array

Mar 3, 2014

I am trying to store each value of a column from a text file into an dynamically allocated array, which needs to be globally declared for further usage in the program.The input textfile contains the following:

34932 13854 13854 2012-01-07
172098 49418 53269 2012-01-07

I have written the following code:

Code:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
}

[code]....

The commented printf line gives the entire values of the column, which proves that the file is correctly being read.But on compiling this program I get both compiler warnings and finally segmentation fault.

View 5 Replies View Related

C :: Free Memory From A Dynamically Allocated Array Of Pointers To Linked Lists

Feb 26, 2013

Having some frustrating issues trying to free memory from a dynamically allocated array of pointers to linked lists. I think the problem is in how I initialize the pointers to NULL. Is there a more elegant way to have the program recognize that the list is empty so it knows to create a head node for the linked list in the function 'add_end_stub_to_array'?

I ran the code through Valgrind and it says that memory is definitely lost from this array.

This is the structure definition.

Code: struct stub_edge {
int loc_id;
int anim_type;
int mkt;
struct stub_edge *next_node;
};

Here is the code snippet from main allocating and deallocating memory to the array.

Code:

struct stub_edge **stub_list = (struct stub_edge **)malloc( sizeof(struct stub_edge *) * 12);
for (i = 0; i < 12; i++)
{
stub_list[i] = (struct stub_edge *)malloc(sizeof(struct stub_edge));
stub_list[i] = NULL;
}
stub_list = add_end_stub_to_array(end_stubs, stub_list);
destroy_end_stub_array(stub_list);

Here the function for adding nodes to the lists by reading through a dynamically allocated 2D array. (The end_stubs array is ordered by month and each linked list represents events occuring within the month).

Code:

struct stub_edge **add_end_stub_to_array(int **end_stubs, struct stub_edge **list)
{
long int i = 0;
int mon = 0;
struct stub_edge *current_node1;
struct stub_edge *new_node1;
int break1 = 0;
while(i < num_edges && break1 == 0 && mon < 12)

[Code]...

Here is the function for freeing memory from the list.

Code:

void destroy_end_stub_array(struct stub_edge **list)
{
if(list != NULL)
{
int mon = 0;
struct stub_edge *current_node1;
struct stub_edge *new_node1;
for(mon = 0; mon < 12; mon++)

[Code]...

View 1 Replies View Related

C++ :: Static Variables In Classes

Mar 1, 2013

If I have a static variable in a class e.g. a pointer to another class like this: (B is another class)

class A {
public:
static B* cB;
};

Then I set that variable and create multiple instances of class A like this:

A::cB = new B;
As = new A[Number];

Then will the value of cB be the same across all instances?

I cannot pass the class pointer in the constructor as I need to create an array of instances. I tried this method but I get linker error.... unresolved external.

View 12 Replies View Related

C++ :: Static Vs Ordinary Variables?

Jul 26, 2014

Is it more expensive to use too many static variables instead of ordinary variables? If yes, then how?------------This is a topic given to me to find out about and I don't even know what are static variable except that they live throughout the life of program

and only disadvantage of using static variable instead ordinary variables in my mind is just they will use memory even when we don't need them

View 7 Replies View Related

C++ :: Using Global Variables In Static Library

Jul 22, 2014

Is it possible to use & change global variables in a Static Library? For example:

I declare a
bool test = true;
globally.

Then later in an exported function If the user wants, he can set that test to false. So the program later when checks test if it's true, will notice that it's not true, since one of my function changed it.

Is it right?

View 3 Replies View Related

C++ :: Declare Static Variables In Header File

Oct 15, 2013

I read in another forum that it is bad practice to declare static variables in a header file? Is that true and if so why.

View 1 Replies View Related

Visual C++ :: Static Variables Local Or Global?

Mar 10, 2014

I came across the following code today and I was a bit surprised that it worked:-

Code:
std::string func_A () {
static std::string x;
if (!x.empty())
return x;

[Code] ....

I've simplified things slightly - but the basic point is that both functions are in the same source file and they both have a static std::string called 'x'. Being static, I guess they aren't (strictly) local variables. So how does the compiler know that they're different entities? Does it encode their signatures using the function name or something like that? If I call each function separately I do seem to get the correct string...

View 5 Replies View Related

C++ :: Read Variables And Methods Of Another Program In Memory?

Jan 16, 2013

i want to write a program that can access to variables and methods of another program. I ques for access to variables need to read memory, but about methods?how i can use methods and call them?

View 1 Replies View Related

C++ :: Memory Address Of Class Member Variables?

Jun 22, 2013

Suppose I have two classes, MyClassX and MyClassY, each with two member variables, as defined below. I create an object instance of each class, and then create a pointer to each member variable for each object:

Code:
class MyClassX
{
public:
int a;
double b;
MyClassX(int _a, double _b)

[code]....

After converting the hexadecimal to decimal, it appears that with MyClassX, pxb is 8 bytes from pxa, whereas for MyClassY, pya is only 4 bytes from pyb. This makes sense for MyClassY, because the first member variable to be stored is an int, and so will occupy 4 bytes. However, why should this be any different for MyClassX, which also has an int as the first member variable, so shouldn't this also occupy 4bytes?

The reason I have come across this problem is that I am looking into streaming objects to memory and then loading them again. (I know boost can do this, but I am trying it out myself from scratch.) Therefore, this is causing an issue, because I cannot just assume that the size of memory occupied by an object is just the sum of the sizes of its member variables. MyClassX is 8 bytes larger than MyClassY, even though the intuition is that it should only occupy 4 bytes more due to a double being replaced by an int.

View 4 Replies View Related

C :: Why Constants And Variables Stored In Memory In Opposite Order Called

May 23, 2014

I'm playing around and wrote a tiny program.

Code:

char bracketin[] = "thisgetsbracketed.txt";
char bracketout[] = "bracketed.txt";
char testwalk[10] = "12345678";

[Code]....

I'm incrementing the pointer to buffer 150 bytes beyond its reserved 50. I see testwalk, followed by bracketout, followed by bracketin printed by the overflow on buffer.

The memory locations are ordered descending from their call order. Why is this the case?

One would think that they would be written in ascending order as I call them. I can only assume that they're compiled bottom up - where could I read about this process?

View 3 Replies View Related

C++ :: Do Static Functions Have Access To Non Static Data Members Of A Class

Apr 17, 2013

From my book:

"A static function might have this prototype:

static void Afunction(int n);

A static function can be called in relation to a particular object by a statement such as the following:

aBox.Afunction(10);

The function has no access to the non-static members of aBox. The same function could also be called without reference to an object. In this case, the statement would be:

CBox::Afunction(10);

where CBox is the class name. Using the class name and the scope resolution operator tells the compiler to which class Afunction() belongs."

Why exactly cant Afunction access non-static members?

View 7 Replies View Related

C++ :: Accessing Non-static Members Inside Static Member Functions

Sep 11, 2013

What are the workarounds for accessing the non-static member variables of some class(Say A) inside static member functions of another class(Say B)? I am coding in c++. Class A is derived with public properties of class B. Any pointers?

View 7 Replies View Related

C# :: Static Method Inside Non-static Class

Aug 22, 2014

Have following code:

class Program
{
static void Main(string[] args)
{

[Code]....

My question according to what i just wrote:

1. Is that mean that Do() is only available for use by Dog itself because Dog is 'oryginal' Dog, and if i create new dogs - instances of oryginal Dog (dog1, dog2 ...) they cant access because Do is only available fo 'oryginal' one? Is that correct thinking?

2. If i would want to have something common (e.g value) for all dogs is that good way to create static field/method for Dog instead of non-static once then all instances of Dog would access Dog static member to get/change it? Just stupid example: static method GetAmountOfLegs() which return 4 Then all instances can take/call that value from Dog. Is that correct thinking?

View 2 Replies View Related

C++ :: Difference Between Static Local Variable And Static Global Variable?

Aug 5, 2013

Here is the code,

Code:
class A {
};
A& CreateObject() {
static A a;
return a;
} static A aa;
int main() {
return 0;
}

So is there any difference between a defined in CreateObject and aa?

View 6 Replies View Related

C :: Splitting Dynamically Allocated 2D Arrays

Jun 24, 2014

I have the following dynamically allocated 2D array:

Code:

int num_rows = 100;
int num_cols = 3;
double **myArray= (double**)malloc( sizeof(double *) * num_rows);
for(i = 0; i < num_rows; i++) {
myArray[i] = (double*)malloc( sizeof(double) * num_cols);
}

After sorting the array based on the values in column 1,:

Code:

qsort(myArray, num_rows, sizeof(myArray[0]), comp_function);
int comp_function(const void* a, const void* b) {
double **p1 = (double**)a;
double **p2 = (double**)b;
double *arr1 = *p1;
double *arr2 = *p2;

return arr1[0] - arr2[0];
}

I need to split the array into two halves so that I can pass each separately into another function that accepts a type double ** pointer. What is the most efficient way of splitting the array? Is it possible to keep the original double ** pointer for the first half of the array and then assign a new double ** pointer to the second half of the array?

View 1 Replies View Related

C++ :: Advantage Of Dynamically Allocated Arrays

Jan 23, 2013

When I first learned about dynamically allocated arrays in school, I always thought we used them for passing arrays as parameters to functions. But the more I have been practicing coding, I see now that normal arrays can be passed as parameters to functions. So, what is the advantage? Why do we even need them?

View 6 Replies View Related







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