【发布时间】:2019-09-26 23:04:02
【问题描述】:
数组中的knots元素没有被修改,打印出来的每个元素都是0,这是为什么呢?
double* knots;
knots = (double*)malloc(sizeof(double) * numKeys);
// Initializaiton
for (int i = 0; i < numKeys; i++) {
knots[i] = 0;
}
// assign value
for (int i = 0; i < numKeys; i++) {
knots[i] = -1 + i;
printf("%d\n", knots[i]);
}
【问题讨论】:
-
您应该避免在
c++中使用 printf 和 malloc。c++标准库中有更好的替代方案。 -
您可以将初始化循环替换为
std::fill。 -
使用
std::vector,而不是使用动态分配的数组(并且必须稍后删除内存)