Lets say in my main method, I declare a const int array pointer pointing to an array created on the heap. I then want to initialize it’s values (using the memory address) in a constructor TryInitialize() and then print them out. This is not working and I’m wondering what I’m doing wrong? Thanks!
#include "stdafx.h"
#include "part_one.h"
#include <string>
#include <iostream>
using namespace std;
string createTable(unsigned int* acc, double* bal, int n) {
string s;
char buf[50];
for (int i = 0; i < n; i++) {
sprintf_s(buf,"%7u\t%10.2f\n",acc[i], bal[i]);
s += string(buf);
}
return s;
}
int _tmain(int argc, _TCHAR* argv[])
{
const int *tempInt = new const int[4];
TryInitialize(tempInt);
std::cout << tempInt[1] << endl;
system("pause");
return 0;
}
And here is my code for my constructor:
#include "part_one.h"
TryInitialize::TryInitialize(void) {
}
TryInitialize::TryInitialize(int constInt[]) {
constInt[0] = 8;
constInt[1] = 0;
constInt[2] = 0;
constInt[3] = 8;
}
You should not change a
constvalue.For what you trying to accomplish I’d recommend declaring a non-const pointer and a const pointer and assigning the non-const one to the const one after the initialization:
Also pay attention where you put the const in the pointer declaration:
In the declaration above the second
constmeans that you cannot change the pointer; the firstconstmeans that you cannot change the pointed value(s).