求解答,一条蛮难的题(个人认为)。该怎么处理

求解答,一条蛮难的题(个人认为)。
题目:

用户任意从键盘输入n(1<n<100)个字符串,每个字符串长度为1-15个字符,
要求将用户输入的字符串按积分大小降序排序后输出,字符串积分计算方法是:
将该字符串内所有字符的ASCII码值相加。程序中不得使用数组,不得使程序出
现不安全的隐患。

请大牛指教,如果没空给代码的,就指点下思路。
现打上我自己写的代码,但是出错了,不知道怎么改:

------解决方案--------------------
简单的实现一个创建数组, 升序插入元素 的insert函数.
用下面的结构以及比较函数去比较等:
struct String
{
int score;
char data[16];
struct String* next;
};
int cmp(String*a,String*b)
{
return a->score-b->score;
}
int cal(char *str)
{
int total=0;
while(*str)
total+=*str++;
return total;
}

------解决方案--------------------
探讨

不能使用数组,你可以把指针当数组用啊.
char * data
你也可以使用 data[n]来使用啥,一样的.