Initialize two 2D arrays and fill the first column and first row of one of the arrays with 0 along with Dynamic memory allocation
This function should initialize arrays C[m+1][n+1] and B[m][n] and fill the first row and first column of C with zeros. Note: int*** C refers to a pointer points to the 2D integer array. Please correct the error.
void initLCSTable(int*** C, char*** B, int m, int n)
{
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
for (int row = 0; row < m; row++)
for (int col = 0; col < n; col++)
C[m][n] = 0;
B[m][n];
void printLengthTable(int** C, int m, int n);
void printArrowTable(char** B, int m, int n);
//The following function releases the memory space table C & B
occupied
void freeLCSTable(int** C, char** B, int m)
// add code here. Please assist me in this function.
main
int** C;
char** B;
initLCSTable(&C, &B, m, n);
cout << "nTable C" << endl;
printLengthTable(C, m, n);
cout << "nTable B" << endl;
printArrowTable(B, m, n);
return 0;
//This function print the 2D length array C
//Note: array C has m+1 rows and n+1 column
void printLengthTable(int** C, int m, int n)
for (int i = 0; i <= m; i++)
for (int j = 0; j <= n; j++)
cout << C[i][j] << " ";
cout << endl;
//******************************************
//This function print the 2D arrow array B
//Note: array B has m rows and n column
void printArrowTable(char** B, int m, int n)
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cout << B[i][j] << " ";
cout << endl;
Output should look like this (ignore the non-zeros since that is a different Longest Subsequence question all together):
c++ arrays multidimensional-array dynamic-memory-allocation lcs
add a comment |
This function should initialize arrays C[m+1][n+1] and B[m][n] and fill the first row and first column of C with zeros. Note: int*** C refers to a pointer points to the 2D integer array. Please correct the error.
void initLCSTable(int*** C, char*** B, int m, int n)
{
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
for (int row = 0; row < m; row++)
for (int col = 0; col < n; col++)
C[m][n] = 0;
B[m][n];
void printLengthTable(int** C, int m, int n);
void printArrowTable(char** B, int m, int n);
//The following function releases the memory space table C & B
occupied
void freeLCSTable(int** C, char** B, int m)
// add code here. Please assist me in this function.
main
int** C;
char** B;
initLCSTable(&C, &B, m, n);
cout << "nTable C" << endl;
printLengthTable(C, m, n);
cout << "nTable B" << endl;
printArrowTable(B, m, n);
return 0;
//This function print the 2D length array C
//Note: array C has m+1 rows and n+1 column
void printLengthTable(int** C, int m, int n)
for (int i = 0; i <= m; i++)
for (int j = 0; j <= n; j++)
cout << C[i][j] << " ";
cout << endl;
//******************************************
//This function print the 2D arrow array B
//Note: array B has m rows and n column
void printArrowTable(char** B, int m, int n)
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cout << B[i][j] << " ";
cout << endl;
Output should look like this (ignore the non-zeros since that is a different Longest Subsequence question all together):
c++ arrays multidimensional-array dynamic-memory-allocation lcs
I'm not comfortable answering this question because you have not made a credible attempt at solving it yourself yet, but here is a hint to get you started: How do I declare a 2d array in C++ using new?
– user4581301
Nov 14 '18 at 5:14
A side note: You don't want to do this in C++. The preferred approach would be nestingstd::vector
s or a matrix class wrapper around a single vector to make the vector appear to be 2 dimensional
– user4581301
Nov 14 '18 at 5:18
@user4581301 I have now made an attempt at trying to initializing the first row and column to 0s. But I'm not sure if Im wrong since I cannot check because I don't know how to release the memory in the freeLCStable function. (I'm really sorry but I'll highly appreciate it if you can assist me)
– Ayaan
Nov 14 '18 at 5:48
@user4581301 I was suggested to use std::vector as well by other users here but my professor wants me to do this way specifically.. (sorry again)
– Ayaan
Nov 14 '18 at 5:50
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
doesn't allocate anything. Read the link about how to declare a 2D array. You can't do jack until you allocate storage.
– user4581301
Nov 14 '18 at 6:31
add a comment |
This function should initialize arrays C[m+1][n+1] and B[m][n] and fill the first row and first column of C with zeros. Note: int*** C refers to a pointer points to the 2D integer array. Please correct the error.
void initLCSTable(int*** C, char*** B, int m, int n)
{
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
for (int row = 0; row < m; row++)
for (int col = 0; col < n; col++)
C[m][n] = 0;
B[m][n];
void printLengthTable(int** C, int m, int n);
void printArrowTable(char** B, int m, int n);
//The following function releases the memory space table C & B
occupied
void freeLCSTable(int** C, char** B, int m)
// add code here. Please assist me in this function.
main
int** C;
char** B;
initLCSTable(&C, &B, m, n);
cout << "nTable C" << endl;
printLengthTable(C, m, n);
cout << "nTable B" << endl;
printArrowTable(B, m, n);
return 0;
//This function print the 2D length array C
//Note: array C has m+1 rows and n+1 column
void printLengthTable(int** C, int m, int n)
for (int i = 0; i <= m; i++)
for (int j = 0; j <= n; j++)
cout << C[i][j] << " ";
cout << endl;
//******************************************
//This function print the 2D arrow array B
//Note: array B has m rows and n column
void printArrowTable(char** B, int m, int n)
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cout << B[i][j] << " ";
cout << endl;
Output should look like this (ignore the non-zeros since that is a different Longest Subsequence question all together):
c++ arrays multidimensional-array dynamic-memory-allocation lcs
This function should initialize arrays C[m+1][n+1] and B[m][n] and fill the first row and first column of C with zeros. Note: int*** C refers to a pointer points to the 2D integer array. Please correct the error.
void initLCSTable(int*** C, char*** B, int m, int n)
{
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
for (int row = 0; row < m; row++)
for (int col = 0; col < n; col++)
C[m][n] = 0;
B[m][n];
void printLengthTable(int** C, int m, int n);
void printArrowTable(char** B, int m, int n);
//The following function releases the memory space table C & B
occupied
void freeLCSTable(int** C, char** B, int m)
// add code here. Please assist me in this function.
main
int** C;
char** B;
initLCSTable(&C, &B, m, n);
cout << "nTable C" << endl;
printLengthTable(C, m, n);
cout << "nTable B" << endl;
printArrowTable(B, m, n);
return 0;
//This function print the 2D length array C
//Note: array C has m+1 rows and n+1 column
void printLengthTable(int** C, int m, int n)
for (int i = 0; i <= m; i++)
for (int j = 0; j <= n; j++)
cout << C[i][j] << " ";
cout << endl;
//******************************************
//This function print the 2D arrow array B
//Note: array B has m rows and n column
void printArrowTable(char** B, int m, int n)
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cout << B[i][j] << " ";
cout << endl;
Output should look like this (ignore the non-zeros since that is a different Longest Subsequence question all together):
c++ arrays multidimensional-array dynamic-memory-allocation lcs
c++ arrays multidimensional-array dynamic-memory-allocation lcs
edited Nov 14 '18 at 5:46
Ayaan
asked Nov 14 '18 at 4:17
AyaanAyaan
174
174
I'm not comfortable answering this question because you have not made a credible attempt at solving it yourself yet, but here is a hint to get you started: How do I declare a 2d array in C++ using new?
– user4581301
Nov 14 '18 at 5:14
A side note: You don't want to do this in C++. The preferred approach would be nestingstd::vector
s or a matrix class wrapper around a single vector to make the vector appear to be 2 dimensional
– user4581301
Nov 14 '18 at 5:18
@user4581301 I have now made an attempt at trying to initializing the first row and column to 0s. But I'm not sure if Im wrong since I cannot check because I don't know how to release the memory in the freeLCStable function. (I'm really sorry but I'll highly appreciate it if you can assist me)
– Ayaan
Nov 14 '18 at 5:48
@user4581301 I was suggested to use std::vector as well by other users here but my professor wants me to do this way specifically.. (sorry again)
– Ayaan
Nov 14 '18 at 5:50
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
doesn't allocate anything. Read the link about how to declare a 2D array. You can't do jack until you allocate storage.
– user4581301
Nov 14 '18 at 6:31
add a comment |
I'm not comfortable answering this question because you have not made a credible attempt at solving it yourself yet, but here is a hint to get you started: How do I declare a 2d array in C++ using new?
– user4581301
Nov 14 '18 at 5:14
A side note: You don't want to do this in C++. The preferred approach would be nestingstd::vector
s or a matrix class wrapper around a single vector to make the vector appear to be 2 dimensional
– user4581301
Nov 14 '18 at 5:18
@user4581301 I have now made an attempt at trying to initializing the first row and column to 0s. But I'm not sure if Im wrong since I cannot check because I don't know how to release the memory in the freeLCStable function. (I'm really sorry but I'll highly appreciate it if you can assist me)
– Ayaan
Nov 14 '18 at 5:48
@user4581301 I was suggested to use std::vector as well by other users here but my professor wants me to do this way specifically.. (sorry again)
– Ayaan
Nov 14 '18 at 5:50
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
doesn't allocate anything. Read the link about how to declare a 2D array. You can't do jack until you allocate storage.
– user4581301
Nov 14 '18 at 6:31
I'm not comfortable answering this question because you have not made a credible attempt at solving it yourself yet, but here is a hint to get you started: How do I declare a 2d array in C++ using new?
– user4581301
Nov 14 '18 at 5:14
I'm not comfortable answering this question because you have not made a credible attempt at solving it yourself yet, but here is a hint to get you started: How do I declare a 2d array in C++ using new?
– user4581301
Nov 14 '18 at 5:14
A side note: You don't want to do this in C++. The preferred approach would be nesting
std::vector
s or a matrix class wrapper around a single vector to make the vector appear to be 2 dimensional– user4581301
Nov 14 '18 at 5:18
A side note: You don't want to do this in C++. The preferred approach would be nesting
std::vector
s or a matrix class wrapper around a single vector to make the vector appear to be 2 dimensional– user4581301
Nov 14 '18 at 5:18
@user4581301 I have now made an attempt at trying to initializing the first row and column to 0s. But I'm not sure if Im wrong since I cannot check because I don't know how to release the memory in the freeLCStable function. (I'm really sorry but I'll highly appreciate it if you can assist me)
– Ayaan
Nov 14 '18 at 5:48
@user4581301 I have now made an attempt at trying to initializing the first row and column to 0s. But I'm not sure if Im wrong since I cannot check because I don't know how to release the memory in the freeLCStable function. (I'm really sorry but I'll highly appreciate it if you can assist me)
– Ayaan
Nov 14 '18 at 5:48
@user4581301 I was suggested to use std::vector as well by other users here but my professor wants me to do this way specifically.. (sorry again)
– Ayaan
Nov 14 '18 at 5:50
@user4581301 I was suggested to use std::vector as well by other users here but my professor wants me to do this way specifically.. (sorry again)
– Ayaan
Nov 14 '18 at 5:50
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
doesn't allocate anything. Read the link about how to declare a 2D array. You can't do jack until you allocate storage.– user4581301
Nov 14 '18 at 6:31
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
doesn't allocate anything. Read the link about how to declare a 2D array. You can't do jack until you allocate storage.– user4581301
Nov 14 '18 at 6:31
add a comment |
1 Answer
1
active
oldest
votes
As long as you initialize part of the array, the rest will be default-initialized.
C[m + 1][n + 1] = 0; // Zero-initialized
C[m + 1][n + 1] = 0; // Same ^
C[m + 1][n + 1] = 1; // Zero-intialized except for [0][0] = 1
C[m + 1][n + 1] = 1; // Same ^
C[m + 1][n + 1]; // Uninitialized!
There are some contexts where arrays are zero-initialized anyway, but it doesn't hurt to do so explicitly.
Note that if you want to initialize with values other than zero, you'd be (mostly) out of luck. I've done work recently with template metaprogramming that would help...
// You can subclass this type, add it as a member, etc.
template<class T, T... I> struct Seq
typedef T value_type [sizeof...(I)];
// If you want to use it directly from here:
static constexpr value_type value = I...;
// Don't bother trying with any variation of...
// static constexpr value_type to_array(void) return I...;
;
template<class T, T... I0, T... I1>
auto operator+(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0+I1...> return ;
template<class T, T... I0, T... I1>
auto operator<<(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0..., I1...> return ;
// ... more Seq manipulation ...
I can use this to define ranges of numbers, binomial coefficients, etc. and as long as I still have some form of access to the template arguments, I can make an array of it. (That includes moving around a Seq<...>
as an abstract T
until the function where it's used.) I'd love to know what more can be done with this. I tried returning an initializer_list
and defining an array out of that, but no luck (array initializers apparently only look like initializer_list
s.)
okay but how do I complete the void freeLCSTable() function above?
– Ayaan
Nov 14 '18 at 4:51
Sorry, I'm not sure, and I'm not sure I answered the question looking at your code again. I work almost exclusively on the stack. It looks like you're assigning an array to a pointer that was already allocated, which would mean that the original is never freed and freeLCSTable would try to free the array that's on the stack. Hopefully someone with more dynamic memory experience could chime in.
– John P
Nov 14 '18 at 5:03
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293132%2finitialize-two-2d-arrays-and-fill-the-first-column-and-first-row-of-one-of-the-a%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
As long as you initialize part of the array, the rest will be default-initialized.
C[m + 1][n + 1] = 0; // Zero-initialized
C[m + 1][n + 1] = 0; // Same ^
C[m + 1][n + 1] = 1; // Zero-intialized except for [0][0] = 1
C[m + 1][n + 1] = 1; // Same ^
C[m + 1][n + 1]; // Uninitialized!
There are some contexts where arrays are zero-initialized anyway, but it doesn't hurt to do so explicitly.
Note that if you want to initialize with values other than zero, you'd be (mostly) out of luck. I've done work recently with template metaprogramming that would help...
// You can subclass this type, add it as a member, etc.
template<class T, T... I> struct Seq
typedef T value_type [sizeof...(I)];
// If you want to use it directly from here:
static constexpr value_type value = I...;
// Don't bother trying with any variation of...
// static constexpr value_type to_array(void) return I...;
;
template<class T, T... I0, T... I1>
auto operator+(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0+I1...> return ;
template<class T, T... I0, T... I1>
auto operator<<(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0..., I1...> return ;
// ... more Seq manipulation ...
I can use this to define ranges of numbers, binomial coefficients, etc. and as long as I still have some form of access to the template arguments, I can make an array of it. (That includes moving around a Seq<...>
as an abstract T
until the function where it's used.) I'd love to know what more can be done with this. I tried returning an initializer_list
and defining an array out of that, but no luck (array initializers apparently only look like initializer_list
s.)
okay but how do I complete the void freeLCSTable() function above?
– Ayaan
Nov 14 '18 at 4:51
Sorry, I'm not sure, and I'm not sure I answered the question looking at your code again. I work almost exclusively on the stack. It looks like you're assigning an array to a pointer that was already allocated, which would mean that the original is never freed and freeLCSTable would try to free the array that's on the stack. Hopefully someone with more dynamic memory experience could chime in.
– John P
Nov 14 '18 at 5:03
add a comment |
As long as you initialize part of the array, the rest will be default-initialized.
C[m + 1][n + 1] = 0; // Zero-initialized
C[m + 1][n + 1] = 0; // Same ^
C[m + 1][n + 1] = 1; // Zero-intialized except for [0][0] = 1
C[m + 1][n + 1] = 1; // Same ^
C[m + 1][n + 1]; // Uninitialized!
There are some contexts where arrays are zero-initialized anyway, but it doesn't hurt to do so explicitly.
Note that if you want to initialize with values other than zero, you'd be (mostly) out of luck. I've done work recently with template metaprogramming that would help...
// You can subclass this type, add it as a member, etc.
template<class T, T... I> struct Seq
typedef T value_type [sizeof...(I)];
// If you want to use it directly from here:
static constexpr value_type value = I...;
// Don't bother trying with any variation of...
// static constexpr value_type to_array(void) return I...;
;
template<class T, T... I0, T... I1>
auto operator+(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0+I1...> return ;
template<class T, T... I0, T... I1>
auto operator<<(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0..., I1...> return ;
// ... more Seq manipulation ...
I can use this to define ranges of numbers, binomial coefficients, etc. and as long as I still have some form of access to the template arguments, I can make an array of it. (That includes moving around a Seq<...>
as an abstract T
until the function where it's used.) I'd love to know what more can be done with this. I tried returning an initializer_list
and defining an array out of that, but no luck (array initializers apparently only look like initializer_list
s.)
okay but how do I complete the void freeLCSTable() function above?
– Ayaan
Nov 14 '18 at 4:51
Sorry, I'm not sure, and I'm not sure I answered the question looking at your code again. I work almost exclusively on the stack. It looks like you're assigning an array to a pointer that was already allocated, which would mean that the original is never freed and freeLCSTable would try to free the array that's on the stack. Hopefully someone with more dynamic memory experience could chime in.
– John P
Nov 14 '18 at 5:03
add a comment |
As long as you initialize part of the array, the rest will be default-initialized.
C[m + 1][n + 1] = 0; // Zero-initialized
C[m + 1][n + 1] = 0; // Same ^
C[m + 1][n + 1] = 1; // Zero-intialized except for [0][0] = 1
C[m + 1][n + 1] = 1; // Same ^
C[m + 1][n + 1]; // Uninitialized!
There are some contexts where arrays are zero-initialized anyway, but it doesn't hurt to do so explicitly.
Note that if you want to initialize with values other than zero, you'd be (mostly) out of luck. I've done work recently with template metaprogramming that would help...
// You can subclass this type, add it as a member, etc.
template<class T, T... I> struct Seq
typedef T value_type [sizeof...(I)];
// If you want to use it directly from here:
static constexpr value_type value = I...;
// Don't bother trying with any variation of...
// static constexpr value_type to_array(void) return I...;
;
template<class T, T... I0, T... I1>
auto operator+(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0+I1...> return ;
template<class T, T... I0, T... I1>
auto operator<<(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0..., I1...> return ;
// ... more Seq manipulation ...
I can use this to define ranges of numbers, binomial coefficients, etc. and as long as I still have some form of access to the template arguments, I can make an array of it. (That includes moving around a Seq<...>
as an abstract T
until the function where it's used.) I'd love to know what more can be done with this. I tried returning an initializer_list
and defining an array out of that, but no luck (array initializers apparently only look like initializer_list
s.)
As long as you initialize part of the array, the rest will be default-initialized.
C[m + 1][n + 1] = 0; // Zero-initialized
C[m + 1][n + 1] = 0; // Same ^
C[m + 1][n + 1] = 1; // Zero-intialized except for [0][0] = 1
C[m + 1][n + 1] = 1; // Same ^
C[m + 1][n + 1]; // Uninitialized!
There are some contexts where arrays are zero-initialized anyway, but it doesn't hurt to do so explicitly.
Note that if you want to initialize with values other than zero, you'd be (mostly) out of luck. I've done work recently with template metaprogramming that would help...
// You can subclass this type, add it as a member, etc.
template<class T, T... I> struct Seq
typedef T value_type [sizeof...(I)];
// If you want to use it directly from here:
static constexpr value_type value = I...;
// Don't bother trying with any variation of...
// static constexpr value_type to_array(void) return I...;
;
template<class T, T... I0, T... I1>
auto operator+(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0+I1...> return ;
template<class T, T... I0, T... I1>
auto operator<<(Seq<T, I0...> const&, Seq<T, I1...> const&)
-> Seq<T, I0..., I1...> return ;
// ... more Seq manipulation ...
I can use this to define ranges of numbers, binomial coefficients, etc. and as long as I still have some form of access to the template arguments, I can make an array of it. (That includes moving around a Seq<...>
as an abstract T
until the function where it's used.) I'd love to know what more can be done with this. I tried returning an initializer_list
and defining an array out of that, but no luck (array initializers apparently only look like initializer_list
s.)
answered Nov 14 '18 at 4:46
John PJohn P
5131926
5131926
okay but how do I complete the void freeLCSTable() function above?
– Ayaan
Nov 14 '18 at 4:51
Sorry, I'm not sure, and I'm not sure I answered the question looking at your code again. I work almost exclusively on the stack. It looks like you're assigning an array to a pointer that was already allocated, which would mean that the original is never freed and freeLCSTable would try to free the array that's on the stack. Hopefully someone with more dynamic memory experience could chime in.
– John P
Nov 14 '18 at 5:03
add a comment |
okay but how do I complete the void freeLCSTable() function above?
– Ayaan
Nov 14 '18 at 4:51
Sorry, I'm not sure, and I'm not sure I answered the question looking at your code again. I work almost exclusively on the stack. It looks like you're assigning an array to a pointer that was already allocated, which would mean that the original is never freed and freeLCSTable would try to free the array that's on the stack. Hopefully someone with more dynamic memory experience could chime in.
– John P
Nov 14 '18 at 5:03
okay but how do I complete the void freeLCSTable() function above?
– Ayaan
Nov 14 '18 at 4:51
okay but how do I complete the void freeLCSTable() function above?
– Ayaan
Nov 14 '18 at 4:51
Sorry, I'm not sure, and I'm not sure I answered the question looking at your code again. I work almost exclusively on the stack. It looks like you're assigning an array to a pointer that was already allocated, which would mean that the original is never freed and freeLCSTable would try to free the array that's on the stack. Hopefully someone with more dynamic memory experience could chime in.
– John P
Nov 14 '18 at 5:03
Sorry, I'm not sure, and I'm not sure I answered the question looking at your code again. I work almost exclusively on the stack. It looks like you're assigning an array to a pointer that was already allocated, which would mean that the original is never freed and freeLCSTable would try to free the array that's on the stack. Hopefully someone with more dynamic memory experience could chime in.
– John P
Nov 14 '18 at 5:03
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293132%2finitialize-two-2d-arrays-and-fill-the-first-column-and-first-row-of-one-of-the-a%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I'm not comfortable answering this question because you have not made a credible attempt at solving it yourself yet, but here is a hint to get you started: How do I declare a 2d array in C++ using new?
– user4581301
Nov 14 '18 at 5:14
A side note: You don't want to do this in C++. The preferred approach would be nesting
std::vector
s or a matrix class wrapper around a single vector to make the vector appear to be 2 dimensional– user4581301
Nov 14 '18 at 5:18
@user4581301 I have now made an attempt at trying to initializing the first row and column to 0s. But I'm not sure if Im wrong since I cannot check because I don't know how to release the memory in the freeLCStable function. (I'm really sorry but I'll highly appreciate it if you can assist me)
– Ayaan
Nov 14 '18 at 5:48
@user4581301 I was suggested to use std::vector as well by other users here but my professor wants me to do this way specifically.. (sorry again)
– Ayaan
Nov 14 '18 at 5:50
C[m + 1][n + 1] = 0; //i don't know if this makes the 1st row & column to 0
doesn't allocate anything. Read the link about how to declare a 2D array. You can't do jack until you allocate storage.– user4581301
Nov 14 '18 at 6:31