- #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==