我只用了几个星期才开始写C而且没有花时间过分担心自己malloc().然而,最近,我的一个程序返回了一串幸福的面孔而不是我预期的真假值.
如果我创建这样的结构:
typedef struct Cell {
struct Cell* subcells;
}
Run Code Online (Sandbox Code Playgroud)
然后再像这样初始化它
Cell makeCell(int dim) {
Cell newCell;
for(int i = 0; i < dim; i++) {
newCell.subcells[i] = makeCell(dim -1);
}
return newCell; //ha ha ha, this is here in my program don't worry!
}
Run Code Online (Sandbox Code Playgroud)
我最终会在某个地方访问存储在内存中的快乐面孔,或者可能会写入以前存在的单元格,或者是什么?我的问题是,当我没有实际malloc()编辑适当的内存量时,C如何分配内存?什么是默认值?