How to use memset or fill_n to initialize a dynamic two dimensional array in C++

SyncMaster

I have a 2D array created dynamically.

int **abc = new int*[rows];

for (uint32_t i = 0; i < rows; i++)
{
    abc[i] = new int[cols];
}

I want to fill the array with some value (say 1). I can loop over each item and do it.

But is there a simpler way. I am trying to use memset and std::fill_n as mentioned in this post.

std::fill_n(abc, rows * cols, 1);
memset(abc, 1, rows * cols * sizeof(int));

Using memset crashes my program. Using fill_n gives a compile error.

invalid conversion from 'int' to 'int*' [-fpermissive]

What am I doing wrong here ?

Barry

You could just use vector:

std::vector<std::vector<int>> abc(rows, std::vector<int>(cols, 1));

You cannot use std::fill_n or memset on abc directly, it simply will not work. You can only use either on the sub-arrays:

int **abc = new int*[rows];

for (uint32_t i = 0; i < rows; i++)
{
    abc[i] = new int[cols];
    std::fill_n(abc[i], cols, 1);
}

Or make the whole thing single-dimensional:

int *abc = new int[rows * cols];
std::fill_n(abc, rows*cols, 1);

Or I guess you could use std::generate_n in combination with std::fill_n, but this just seems confusing:

int **abc = new int*[rows];
std::generate_n(abc, rows, [cols]{
    int* row = new int[cols];
    std::fill_n(row, cols, 1);
    return row;
});

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

How do I initialize a two-dimensional array in C

From Dev

How do I initialize a two-dimensional array in C

From Dev

How to fill a two dimensional array with chars in C?

From Dev

Initialize a two dimensional array in C++

From Dev

Initialize a two dimensional array in C++

From Dev

How to initialize a two dimensional array in python

From Dev

How to initialize a two dimensional array of UIButtons in Swift?

From Dev

How to initialize a two dimensional array in python

From Dev

initialize two dimensional string array with dynamic size in java

From Dev

fill_n vs memset to set default value of an array

From Dev

fill_n vs memset to set default value of an array

From Dev

How to fill a two dimensional array?

From Dev

How to use memset to fill in max value for an array?

From Dev

Function to initialize two dimensional array

From Dev

How to initialize a double dimensional boolean array/char array with fill function in C++?

From Dev

Two dimensional array / initialize data in c++ (Arduino)

From Dev

Initialize two dimensional array with different columns sizes in c++

From Dev

Initialize two dimensional array with different columns sizes in c++

From Dev

How in kotlin to initialize a two dimensional non-nullable string array

From Dev

C: Use pointer to access two dimensional array

From Java

How to use the map() method on a two dimensional Array?

From Dev

cpp two dimensional dynamic array

From Dev

How can I create a two-dimensional dynamic array in C#?

From Dev

How do I declare a two dimensional dynamic array inside of a Class in C++

From Dev

How to declare and initialize in a 4-dimensional array in C

From Dev

Dynamic Allocation of two-dimensional array C++

From Dev

Initialize a dynamic array in C

From Dev

Initialize a dynamic array in C

From Dev

C dynamic allocated array using memset for initialisation

Related Related

  1. 1

    How do I initialize a two-dimensional array in C

  2. 2

    How do I initialize a two-dimensional array in C

  3. 3

    How to fill a two dimensional array with chars in C?

  4. 4

    Initialize a two dimensional array in C++

  5. 5

    Initialize a two dimensional array in C++

  6. 6

    How to initialize a two dimensional array in python

  7. 7

    How to initialize a two dimensional array of UIButtons in Swift?

  8. 8

    How to initialize a two dimensional array in python

  9. 9

    initialize two dimensional string array with dynamic size in java

  10. 10

    fill_n vs memset to set default value of an array

  11. 11

    fill_n vs memset to set default value of an array

  12. 12

    How to fill a two dimensional array?

  13. 13

    How to use memset to fill in max value for an array?

  14. 14

    Function to initialize two dimensional array

  15. 15

    How to initialize a double dimensional boolean array/char array with fill function in C++?

  16. 16

    Two dimensional array / initialize data in c++ (Arduino)

  17. 17

    Initialize two dimensional array with different columns sizes in c++

  18. 18

    Initialize two dimensional array with different columns sizes in c++

  19. 19

    How in kotlin to initialize a two dimensional non-nullable string array

  20. 20

    C: Use pointer to access two dimensional array

  21. 21

    How to use the map() method on a two dimensional Array?

  22. 22

    cpp two dimensional dynamic array

  23. 23

    How can I create a two-dimensional dynamic array in C#?

  24. 24

    How do I declare a two dimensional dynamic array inside of a Class in C++

  25. 25

    How to declare and initialize in a 4-dimensional array in C

  26. 26

    Dynamic Allocation of two-dimensional array C++

  27. 27

    Initialize a dynamic array in C

  28. 28

    Initialize a dynamic array in C

  29. 29

    C dynamic allocated array using memset for initialisation

HotTag

Archive