Code:
#include <iostream>
char* intToCharArray(int val)
{
int len=0;
bool neg = false;
if (val < 0)
{
val = -val;
len = ((int)log10(val)) + 2;
neg = true;
}
else
{
len = ((int)log10(val)) + 1;
}
char* cons = new char[len+1];
if (neg)
{
cons[0] = '-';
for (int i = 1; i <= len-1; i++)
{
cons[len-i] = (val % 10) + '0';
val /= 10;
}
}
else
{
for (int i = 0; i <= len; i++)
{
cons[len-i-1] = (val % 10) + '0';
val /= 10;
}
}
cons[len] = '\0';
return cons;
}
int main(int arc, char* arv)
{
int num = 444;
char* arr = intToCharArray(num);
int count = 0;
std::string test = std::string(arr);
std::string beg = "test";
std::cout << test << std::endl;
//changing it like this works
arr = intToCharArray(num * 6);
test = std::string(arr);
std::cout << test << std::endl;
//but changing it with a loop crashes the program
for (int i = 0; i < 5; i++)
{
arr = intToCharArray(num * i);
test = std::string(arr);
std::cout << test << std::endl;
}
return 0;
};
Basically, I'm trying to convert an integer into a string. Everything seems to work... unless I run the code in a loop. I have absolutely NO idea what could even possibly be the problem. I've never run into, or even heard of, a problem like this. I'm honestly not even sure what to ask, so Google has been no help either.