c++ - 为什么我的函数返回的数字类似于 (-33686016),但没有返回所需的值?
问题描述
我需要为类进行动态数组分配,在其中展示它们的工作方式以及如何将它们传递给函数。似乎代码运行没有错误,但它返回的值-33686016
,但我需要它来返回我传入的整数的总和。
所以我想做一个与动态数组一起工作的计算器,这样你就可以输入尽可能多的整数,你需要在循环中求和,还没有完成循环部分,但没有它它甚至无法工作。我试图添加指针并到达它返回内存地址的地步。但仍然无法获得价值。
源文件:
#include <iostream>
#include "saskait_funkc.h"
int main()
{
int size;
std::cin >> size;
int *arr = new int[size];
for (int i = 0; i <= (size - 1); i++) {
std::cin >> arr[i]; }
int kopa = sask(arr, size);
std::cout << kopa;
system("pause");
return 0;
}
功能:
int sask(int *num, int size) {
int sum = 0;
for (int i = 0; i <= size; i++) {
sum = sum + num[i];}
return sum;
}
因此,例如第一个输入(2 表示您接下来将输入多少个整数),然后(1 和 2 是您想要求和的整数)和输出应该是 3,但它输出-33686016
。
没有数组它可以工作,但我需要包含动态数组
解决方案
正如评论中所说 - 数组长度使您可以访问最后一个元素arr[length-1]
。
因此,在您的sask
函数中,您无法访问您num[i]
的条件i=size
允许的时间for-loop
- 如果您确实访问它,它可能会sum
以意想不到的方式更改 var(将其更改为“-33686016”)。
这样做的方法是:
for (int i = 0; i < size; i++) // without the "=" sign
推荐阅读
- python - 如何用pynput按住键?
- c++ - Nugget - 如何链接 SFML 库
- unreal-engine4 - 如何获取actor的原始组件
- node.js - 函数中的返回不返回但挂起
- spring-boot - 在 Spring Batch 中使用 2 个数据源时面临提交问题
- python - 如何使用我在代码中使用的所有包将 myfile.py 编译为 myfile.exe?
- python - 为什么 NLP 特征矩阵有两列?
- html - 电子邮件签名在移动设备上无法正常工作
- vba - 如何在 ms-access 2007 VBA 中计算 mod 97
- python - 使用 Django 视图/URL 上传本地文件