g**4 发帖数: 863 | 1 在c里面用非动态的array保存非动态的一个struct信息,为什么struct里面的信息在
declare过后不久,里面就乱了
是cs107里面的第3个作业。
以下是详细说明:
typedef struct
{
void* elems;
int elemSize;
int loglength;
int alloclength;
void (*freeFn)(void *);
} vector;
typedef struct {
vector (*arr)[];
int elemSize;
.....
} hashset;
在declare一个hashset h后,在hashsetNew(&h, ...)给里面的参数都赋了值,在
hashsetNew()里面测试参数一切正常
但是当&h被pass到另一个function里面,vector里面的参数全都乱了套
困扰好几天了,求助~~ |
p***e 发帖数: 69 | 2 h被pass到另一个function之前的值对么?
【在 g**4 的大作中提到】 : 在c里面用非动态的array保存非动态的一个struct信息,为什么struct里面的信息在 : declare过后不久,里面就乱了 : 是cs107里面的第3个作业。 : 以下是详细说明: : typedef struct : { : void* elems; : int elemSize; : int loglength; : int alloclength;
|
g**4 发帖数: 863 | 3 错的
出了declaration那个地方,里面的值就乱了
【在 p***e 的大作中提到】 : h被pass到另一个function之前的值对么?
|
f*******n 发帖数: 12623 | 4 "arr" 是一个pointer to array。"arr"指着什么?可能是指着的东西没了。 |