抛出异常。动态数组和操作堆栈

时间:2018-03-30 10:48:52

标签: c dynamic dynamic-language-runtime

这是动态阵列:

typedef struct
{
    TElement* elems;
    int length;   //length of the array
    int capacity;  //capacity of the array
}
DynamicArray;

在getLength中抛出 EXCEPTION (抛出未处理的异常:读取访问冲突。 arr 为0xFFFFFFFFD03ED950。发生了):

    TElement get(DynamicArray* arr, int pos)
    {
        return arr->elems[pos];
    }

    int getCapacity(DynamicArray* arr)
    {
        if (arr == NULL) return -1;
        return arr->capacity;
     }

我试图让这个函数类型为DynamicArray但它不起作用

    int getLength(DynamicArray* arr)
    {
        if (arr == NULL) return -1;
        return arr->length;
    }

这里的长度显然用作int        //这里我使用长度:

    void add(DynamicArray* arr, TElement t)
    {
        if (arr == NULL) return 0;

        if (arr->elems == NULL) return 0;

        //resize the array, if necessary

        if (arr->length == arr->capacity)
            resize(arr);
        arr->elems[arr->length++] = t;
    }

0 个答案:

没有答案