我编写了一个程序,它自动为一个结构分配内存,然后将该结构中的一个字段设置为零。
我想,与其只将该成员设置为零,为什么不将整个块归零呢?进来memset()
。
使用此功能后,我的程序不再工作。一旦我尝试为该内存块中包含的结构中的字段分配值,程序就会因分段错误错误而崩溃。
所以,这让我想知道 - 当一块内存通过malloc()
/ AUTO分配时,是否有其他信息存储在这个位置,这是访问和使用这个空间所必需的?
typedef struct{
NodeT *nodes[MAX_SIZE];
int count;
} stackT;
stackT stack;
stackT* ptr = &stack;
void init(stackT* stackPtr){
//stackPtr->count = 0;
memset(stackPtr, 0, sizeof(stackptr));
}