#include <stdio.h>
#include <string.h>
typedef struct mynode{
//some data
struct mynode *left , *right;
}mynode;
int main(int argc, char* argv[])
{
int i;
int n = 5;
int m = 10;
mynode
** p
= (mynode
**)malloc(n
*sizeof(mynode
*)); // Heap memory
// Or memset(p, (int)NULL, n * sizeof(mynode*));
for(i = 0; i < n; ++i)
{
p[i] = NULL;
}
for(i = 0; i < n; ++i)
{
p
[i
] = (mynode
*)malloc(m
*sizeof(mynode
)); // Heap memory memset(p
[i
], (int)NULL
, m
* sizeof(mynode
));// Method 2, include <cstring> or <string.h> printf("left=%p, right=%p\n", p
[i
][0].
left, p
[i
][0].
right); // p[i] = &n; // This case don't use delete [] p[i]. (Pointer to a variable)
}
/*** do something ***/
for(i = 0; i < n; ++i)
{
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCnR5cGVkZWYgc3RydWN0IG15bm9kZXsKLy9zb21lIGRhdGEKc3RydWN0IG15bm9kZSAqbGVmdCAsICpyaWdodDsKfW15bm9kZTsKCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKCWludCBpOwoJaW50IG4gPSA1OwoJaW50IG0gPSAxMDsKCW15bm9kZSoqIHAgPSAobXlub2RlKiopbWFsbG9jKG4qc2l6ZW9mKG15bm9kZSopKTsJCQkJCS8vIEhlYXAgbWVtb3J5CgkKCS8vIE9yIG1lbXNldChwLCAoaW50KU5VTEwsIG4gKiBzaXplb2YobXlub2RlKikpOwoJZm9yKGkgPSAwOyBpIDwgbjsgKytpKQoJewoJCXBbaV0gPSBOVUxMOwoJfQkKCglmb3IoaSA9IDA7IGkgPCBuOyArK2kpCgl7CgkJcFtpXSA9IChteW5vZGUqKW1hbGxvYyhtKnNpemVvZihteW5vZGUpKTsJCQkJCQkvLyBIZWFwIG1lbW9yeQoJCW1lbXNldChwW2ldLCAoaW50KU5VTEwsIG0gKiBzaXplb2YobXlub2RlKSk7Ly8gTWV0aG9kIDIsIGluY2x1ZGUgPGNzdHJpbmc+IG9yIDxzdHJpbmcuaD4KCQlwcmludGYoImxlZnQ9JXAsIHJpZ2h0PSVwXG4iLCBwW2ldWzBdLmxlZnQsIHBbaV1bMF0ucmlnaHQpOwoJCS8vIHBbaV0gPSAmbjsJCQkJCQkJCS8vIFRoaXMgY2FzZSBkb24ndCB1c2UgZGVsZXRlIFtdIHBbaV0uIChQb2ludGVyIHRvIGEgdmFyaWFibGUpCgl9CgoJLyoqKiBkbyBzb21ldGhpbmcgKioqLwoKCWZvcihpID0gMDsgaSA8IG47ICsraSkKCXsKCQlmcmVlKHBbaV0pOwoJfQoJZnJlZShwKTsKCglyZXR1cm4gMDsKfQ==