- #include <iostream> 
- #include <cstring> 
-   
- using namespace std; 
-   
- struct mynode{ 
- //some data 
- mynode *left , *right; 
- mynode(): left(NULL), right(NULL) {};				// Method 1 
- }; 
-   
- int main(int argc, char* argv[]) 
- { 
- 	int n = 5; 
- 	int m = 10; 
- 	mynode** p = new mynode*[n];					// Heap memory 
-   
- 	// Or memset(p, (int)NULL, n * sizeof(mynode*)); 
- 	for(int i = 0; i < n; ++i) 
- 	{ 
- 		p[i] = NULL; 
- 	}	 
-   
- 	for(int i = 0; i < n; ++i) 
- 	{ 
- 		p[i] = new mynode[m];						// 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(int i = 0; i < n; ++i) 
- 	{ 
- 		delete [] p[i]; 
- 	} 
- 	delete [] p; 
-   
- 	return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgbXlub2RlewovL3NvbWUgZGF0YQpteW5vZGUgKmxlZnQgLCAqcmlnaHQ7Cm15bm9kZSgpOiBsZWZ0KE5VTEwpLCByaWdodChOVUxMKSB7fTsJCQkJLy8gTWV0aG9kIDEKfTsKCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKCWludCBuID0gNTsKCWludCBtID0gMTA7CglteW5vZGUqKiBwID0gbmV3IG15bm9kZSpbbl07CQkJCQkvLyBIZWFwIG1lbW9yeQoJCgkvLyBPciBtZW1zZXQocCwgKGludClOVUxMLCBuICogc2l6ZW9mKG15bm9kZSopKTsKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpCgl7CgkJcFtpXSA9IE5VTEw7Cgl9CQoKCWZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpCgl7CgkJcFtpXSA9IG5ldyBteW5vZGVbbV07CQkJCQkJLy8gSGVhcCBtZW1vcnkKCQltZW1zZXQocFtpXSwgKGludClOVUxMLCBtICogc2l6ZW9mKG15bm9kZSkpOy8vIE1ldGhvZCAyLCBpbmNsdWRlIDxjc3RyaW5nPiBvciA8c3RyaW5nLmg+CgkJcHJpbnRmKCJsZWZ0PSVwLCByaWdodD0lcFxuIiwgcFtpXVswXS5sZWZ0LCBwW2ldWzBdLnJpZ2h0KTsKCQkvLyBwW2ldID0gJm47CQkJCQkJCQkvLyBUaGlzIGNhc2UgZG9uJ3QgdXNlIGRlbGV0ZSBbXSBwW2ldLiAoUG9pbnRlciB0byBhIHZhcmlhYmxlKQoJfQoKCS8qKiogZG8gc29tZXRoaW5nICoqKi8KCglmb3IoaW50IGkgPSAwOyBpIDwgbjsgKytpKQoJewoJCWRlbGV0ZSBbXSBwW2ldOwoJfQoJZGVsZXRlIFtdIHA7CgoJcmV0dXJuIDA7Cn0=