我需要删除小数点后的数字,但不是全部。
例如,double dig=3.1459038585 我需要将其转换为 dig=3.14
我想我需要多次 dig 到 100 然后将其转换为整数,然后再次转换为 double 并删除为 100 (所有这些都是 1 行)。但是有什么功能可以更快地做到这一点吗?
今天我试图创建全局指针:
int *map = new int[M2*N2];
Run Code Online (Sandbox Code Playgroud)
然后我试图在main()函数中删除它:
delete[] map;
map = NULL;
Run Code Online (Sandbox Code Playgroud)
但在执行所有程序后,它会给出错误:
free(): invalid next size (fast)
Run Code Online (Sandbox Code Playgroud)
那么,是否有可能创建这样的指针,然后在其他地方删除它?
编辑
它的固定.
M2是M + 1(M是阵列的极限),使用M2 = M + 10后它起作用.
谢谢大家...
所以,我正在使用getline(cin, str);当时的句子,然后string text[str.length()];在for语句中,当我想要组合它们时(text[e] = text[e] + str[i];)我得到了分段错误.完整代码:
#include <cstdlib>
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
string str;
int i, e, space = 0;
getline(cin, str);
string text[str.length()];
for(i=0; i<str.length(); i++) {
if(str[i]==' ') {
space++;
e++;
}
else {
text[e] = text[e] + str[i];
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)