小编Hyn*_*ard的帖子

Windows().激活适用于除一个以外的每台计算机

我遇到了一个奇怪的问题,我在一年前制作了一个宏,它每个月都在使用而没有任何问题.昨天我的老板告诉我,他不能再使用它,它给了他一些错误.我现在在8台计算机上尝试了宏,宏运行得很好.为什么宏会在其他人的计算机上运行,​​除了我的老板.

它打破的线

Windows("MyxlsbFile").Activate
Run Code Online (Sandbox Code Playgroud)

并且给出的错误是

运行时错误'9':下标超出范围.

debugging excel vba excel-vba

2
推荐指数
1
解决办法
1327
查看次数

释放结构中的结构数组

我有两个结构

struct obj_t {
    int id;
    float x;
    float y;
};

struct cluster_t {
    int size;
    int capacity;
    struct obj_t *obj;
};
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,有指向第一obj_t内部cluster_t

我想要做的是从 cluster_t 内的数组中释放每个 obj_t

我必须用这样的for循环来写吗?

void clear_cluster(struct cluster_t *c)
{
    for(int i = 0; i<c->size;i++)
    {
        free(&c->obj[i]);
    }
    free(c->obj);
}
Run Code Online (Sandbox Code Playgroud)

或者像这样释放内存可以吗?

void clear_cluster(struct cluster_t *c)
{
    free(c->obj);
}
Run Code Online (Sandbox Code Playgroud)

c memory arrays free struct

1
推荐指数
1
解决办法
707
查看次数

gcc 指针错误 您的意思是使用“-&gt;”吗?

我已经在头文件中定义了结构

\n\n
typedef struct tDLElem {                 \n        int data;                 \n        struct tDLElem *lptr;     \n        struct tDLElem *rptr; \n} *tDLElemPtr;\n\ntypedef struct { \n    tDLElemPtr First;\n    tDLElemPtr Act; \n    tDLElemPtr Last;\n} tDLList;\n
Run Code Online (Sandbox Code Playgroud)\n\n

我有这个代码

\n\n
void DLInsertFirst (tDLList *L, int val) {\n    tDLElemPtr *newPtr = (tDLElemPtr *) malloc(sizeof(struct tDLElem));\n    if (newPtr == NULL)\n        DLError();\n    newPtr->lptr = NULL;\n    newPtr->rptr = L->First;\n    newPtr->data = val;\n    if (L->First != NULL)\n    {\n        L->First->lptr = newPtr;\n    }\n    else\n    {\n        L->Last = newPtr;\n    }\n    L->First = newPtr;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n …

c gcc struct pointers

1
推荐指数
1
解决办法
4万
查看次数

标签 统计

c ×2

struct ×2

arrays ×1

debugging ×1

excel ×1

excel-vba ×1

free ×1

gcc ×1

memory ×1

pointers ×1

vba ×1