Python调用C语言时的赋值问题

我正在学习在 python 中用 ctypes 包调用 C语言,但是遇到一些问题。

C语言程序(a.c)如下

#include<stdio.h>
#define N 101
double ssum(double a[N]);

double ssum(double a[N])
{
return a[N-1];
}

该程序的作用是输入一个长度为101的数组,输出数组的最后一位。

然后将其编译为 a.so 文件,(我在 Ubuntu 系统上运行程序),命令是

gcc -shared -o a.so ./a.c

然后用 python 调用,python 程序如下:

import numpy as np
from ctypes import *

a=CDLL('./a.so') #python 程序和 a.so 在同一文件夹下
xx=(c_double*101)()
for i in range(101):
xx[i]=0.01
print(a.ssum(xx))

结果

正确结果应该是0.01,但是输出的结果是-751816848,且每次运行的结果都不一样,似乎是将地址输入了 a.ssum 函数。

请问各位,问题是出在哪?