c++数组出了乱码,求帮助

想实现的功能是:
输入一个整数n,再输入n个数字再它的同一行,这时存储后面这n个数字的和。重复这个操作,直到输入的n等于0时,输出每一次的和。
例如:
4 1 2 3 4
5 1 2 3 4 5
0
10
15


#include<iostream>
using namespace std;
void calculate(int n,int*arr)
{
    int num = 0;
    int* larr2 = new int[num];
    while(n != 0)
    {
        for (int i = 0; i < n; i++)
        {
            cin >> arr[i];
            larr2[num] = larr2[num] + arr[i];//这个数组出了乱码
        }
        cin >> n;
        num++;
        for (int i = 0; n == 0 && i < num; i++)
        {
            cout << larr2[i] << endl;
        }
    }
}
int main()
{
    int n = 0;
    cin >> n;
    int* larr = new int[n];
    calculate(n, larr);
    system("pause");
    return 0;
}
没报错,但输出的是乱码

修改如下,供参考对照:

#include<iostream>
using namespace std;
void calculate(int n, int *arr)
{
    int num = 0;
    for (int i = 0; i < n; i++)
    {
            cin >> num;
            *arr += num;
    }
    
}
int main()
{
    int  n = 0,k=0;
    int  larr[128] = {0};
    cin >> n;
    while (n != 0) {    
        calculate(n, &larr[k++]);
        cin >> n;
    }
    for (int i = 0; i < k; i++)
    {
        cout << larr[i] << endl;
    }
    system("pause");
    return 0;
}


#include<iostream>
using namespace std;
int main()
{   
    int* larr = new int[100]();
    int n = 0;
    cin >> n;
    int b=0; 
    while(n!=0){
        int* a = new int[n];
        int acc = 0;
        for(int i = 0 ;i<n ;i++){
            cin >> a[i];
            acc=acc+a[i];
        }
        delete []a;
        larr[b]=acc;
        b++; 
        cin>>n;         
    }
    
    for( int i=0;i<b;i++ ){
        cout << larr[i] <<endl;
    }    
    delete []larr;
    system("pause");
    return 0;
}