Dynamic memory allocation

Dynamic memory allocation

How do you dynamically allocate memory for a two-dimensional array? This is what I had, and my g++ compiler didn’t like it:

int **m;m= new int [100][100];

Yep. The following signifies a pointer to a pointer to an integer.

int **m;

A two-dimensional array is something very different. One problem is the way the compiler computes the address based on the value of the two array subscripts. To compute this address, the code multiplies the column subscript by the size of the data type. But it must multiply the row subscript by the size of the data type times the number of columns.

If the variable is declared simply as a pointer to a pointer, the compiler has no way to know how many columns there are in each row. So you must specify the number of columns in your declaration.

 int (*m)[100]; m = new int[100][100];
The parenthases are required to distinguish the declaration from an array of 100 pointers to integers. Now you can declare your two-dimensional array, and the compiler won’t complain because it knows how many columns for each row.

Share the Post:
data observability

Data Observability Explained

Data is the lifeblood of any successful business, as it is the driving force behind critical decision-making, insight generation, and strategic development. However, due to its intricate nature, ensuring the

Heading photo, Metadata.

What is Metadata?

What is metadata? Well, It’s an odd concept to wrap your head around. Metadata is essentially the secondary layer of data that tracks details about the “regular” data. The regular

XDR solutions

The Benefits of Using XDR Solutions

Cybercriminals constantly adapt their strategies, developing newer, more powerful, and intelligent ways to attack your network. Since security professionals must innovate as well, more conventional endpoint detection solutions have evolved