我有一个 int,我想获得一个包含该 int 的 char*。我的代码是:
int getLength(int x) {
int l = 0;
while(x) {
l++;
x /= 10;
}
return l;
}
char* toString(int x) {
int l = getLength(x);
char *str = new char[l];
l--; // the digits will be placed on positions 0 to l-1
while(l >= 0) {
str[l] = x % 10 + '0';
x /= 10;
l--;
}
return str;
}
部分结果:
toString(1009) = 1009Ä
toString(23) = 23L
为什么?我只为 l 个字符分配了空间。(l = int 的长度)