#include <stdio.h>
#include <stdlib.h>
int main()
{
// Allocate RAM for a buffer to hold 5 pointers to int
int** p_arr
= malloc(sizeof(int*) * 5); // Allocate a buffer large enough to hold 10 int values, assigning it's
// address to each of the 5 pointers in the RAM p_arr points to
for(int i = 0; i < 5; i++)
p_arr
[i
] = malloc(sizeof(int) * 10);
// Assign arbitrary values to the elements of the five 10-integer buffers
for(int i = 0; i < 5; i++)
for(int j = 0; j < 10; j++)
*(*(p_arr + i) + j) = i * j;
// Print out the values of the elements of the five 10-integer buffers
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 10; j++)
}
// Free each of the five 10-integer buffers
for(int i = 0; i < 5; i++)
// Free the 5-pointer buffer
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKCkKewoJLy8gQWxsb2NhdGUgUkFNIGZvciBhIGJ1ZmZlciB0byBob2xkIDUgcG9pbnRlcnMgdG8gaW50CglpbnQqKiBwX2FyciA9IG1hbGxvYyhzaXplb2YoaW50KikgKiA1KTsKCS8vIEFsbG9jYXRlIGEgYnVmZmVyIGxhcmdlIGVub3VnaCB0byBob2xkIDEwIGludCB2YWx1ZXMsIGFzc2lnbmluZyBpdCdzCgkvLyBhZGRyZXNzIHRvIGVhY2ggb2YgdGhlIDUgcG9pbnRlcnMgaW4gdGhlIFJBTSBwX2FyciBwb2ludHMgdG8KCWZvcihpbnQgaSA9IDA7IGkgPCA1OyBpKyspCgkJcF9hcnJbaV0gPSBtYWxsb2Moc2l6ZW9mKGludCkgKiAxMCk7CgoJLy8gQXNzaWduIGFyYml0cmFyeSB2YWx1ZXMgdG8gdGhlIGVsZW1lbnRzIG9mIHRoZSBmaXZlIDEwLWludGVnZXIgYnVmZmVycwoJZm9yKGludCBpID0gMDsgaSA8IDU7IGkrKykKCQlmb3IoaW50IGogPSAwOyBqIDwgMTA7IGorKykKCQkJKigqKHBfYXJyICsgaSkgKyBqKSA9IGkgKiBqOwoKCS8vIFByaW50IG91dCB0aGUgdmFsdWVzIG9mIHRoZSBlbGVtZW50cyBvZiB0aGUgZml2ZSAxMC1pbnRlZ2VyIGJ1ZmZlcnMKCWZvcihpbnQgaSA9IDA7IGkgPCA1OyBpKyspCgl7CgkJZm9yKGludCBqID0gMDsgaiA8IDEwOyBqKyspCgkJCXByaW50ZigiJTAyZCAiLCBwX2FycltpXVtqXSk7CgkJcHV0Y2hhcignXG4nKTsKCX0KCgkvLyBGcmVlIGVhY2ggb2YgdGhlIGZpdmUgMTAtaW50ZWdlciBidWZmZXJzCglmb3IoaW50IGkgPSAwOyBpIDwgNTsgaSsrKQoJCWZyZWUocF9hcnJbaV0pOwoJCgkvLyBGcmVlIHRoZSA1LXBvaW50ZXIgYnVmZmVyCglmcmVlKHBfYXJyKTsKCXJldHVybiAwOwp9Cg==