#include <stdio.h>
#include <stdlib.h>
int main( int argc, char * argv[ ] )
{
int ** arr = NULL;
char * endptr = NULL;
long int arr_size = 0 ;
long int ints_inside_arr = 0 ;
if ( 3 != argc)
{
printf ( "Please Specify the size of the multi dimensional array you want to create and try again!\n " ) ; printf ( "Example : ./main 3 4\n This would result in a 3x4 multi dimensional array" ) ; }
arr_size
= strtol ( argv
[ 1 ] , & endptr
, 10 ) ;
if ( endptr == argv[ 1 ] )
{
printf ( "No Digits Were Found!\n " ) ; }
else if ( * endptr != '\0 ' )
{
printf ( "Invalid Character. Please enter digits only in the format of [num] [num2]\n " ) ; }
endptr = NULL;
ints_inside_arr
= strtol ( argv
[ 2 ] , & endptr
, 10 ) ;
if ( endptr == argv[ 2 ] )
{
printf ( "No Digits Were Found!\n " ) ; }
else if ( * endptr != '\0 ' )
{
printf ( "Invalid Character. Please enter digits only in the format of [num] [num2]\n " ) ; }
arr
= calloc ( arr_size
, sizeof ( int * ) ) ;
if ( NULL == arr)
{
perror ( "Error Allocating Memory For Array!\n " ) ; }
for ( int i = 0 ; i < arr_size; i++ )
{
arr
[ i
] = calloc ( ints_inside_arr
, sizeof ( int ) ) ;
if ( NULL == arr[ i] )
{
perror ( "Failure to allocate memory for inner array!\n " ) ; for ( int j = 0 ; j < i; j++ )
{
}
}
}
printf ( "ARRAY OF INTS CREATED : \n " ) ; for ( int i = 0 ; i < arr_size; i++ )
{
for ( int j = 0 ; j < ints_inside_arr; j++ )
{
arr[ i] [ j] = j;
}
}
for ( int i = 0 ; i < arr_size; i++ )
{
}
printf ( "All Memory Successfully Freed!\n " ) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10pCnsKICAgIGludCAqKiBhcnIgPSBOVUxMOwogICAgY2hhciAqIGVuZHB0ciA9IE5VTEw7CiAgICBsb25nIGludCBhcnJfc2l6ZSA9IDA7CiAgICBsb25nIGludCBpbnRzX2luc2lkZV9hcnIgPSAwOwogICAgaWYgKDMgIT0gYXJnYykKICAgIHsKICAgICAgICBwcmludGYoIlBsZWFzZSBTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBtdWx0aSBkaW1lbnNpb25hbCBhcnJheSB5b3Ugd2FudCB0byBjcmVhdGUgYW5kIHRyeSBhZ2FpbiFcbiIpOwogICAgICAgIHByaW50ZigiRXhhbXBsZSA6IC4vbWFpbiAzIDRcbiBUaGlzIHdvdWxkIHJlc3VsdCBpbiBhIDN4NCBtdWx0aSBkaW1lbnNpb25hbCBhcnJheSIpOwogICAgICAgIGV4aXQoMCk7CiAgICB9CgogICAgYXJyX3NpemUgPSBzdHJ0b2woYXJndlsxXSwgJmVuZHB0ciwgMTApOwoKICAgIGlmIChlbmRwdHIgPT0gYXJndlsxXSkKICAgIHsKICAgICAgICBwcmludGYoIk5vIERpZ2l0cyBXZXJlIEZvdW5kIVxuIik7CiAgICAgICAgZXhpdCgwKTsKICAgIH0KICAgIGVsc2UgaWYgKCplbmRwdHIgIT0gJ1wwJykKICAgIHsKICAgICAgICBwcmludGYoIkludmFsaWQgQ2hhcmFjdGVyLiBQbGVhc2UgZW50ZXIgZGlnaXRzIG9ubHkgaW4gdGhlIGZvcm1hdCBvZiBbbnVtXSBbbnVtMl1cbiIpOwogICAgICAgIGV4aXQoMCk7CiAgICB9CgogICAgZW5kcHRyID0gTlVMTDsKCiAgICBpbnRzX2luc2lkZV9hcnIgPSBzdHJ0b2woYXJndlsyXSwgJmVuZHB0ciwgMTApOwoKICAgIGlmIChlbmRwdHIgPT0gYXJndlsyXSkKICAgIHsKICAgICAgICBwcmludGYoIk5vIERpZ2l0cyBXZXJlIEZvdW5kIVxuIik7CiAgICAgICAgZXhpdCgwKTsKICAgIH0KICAgIGVsc2UgaWYgKCplbmRwdHIgIT0gJ1wwJykKICAgIHsKICAgICAgICBwcmludGYoIkludmFsaWQgQ2hhcmFjdGVyLiBQbGVhc2UgZW50ZXIgZGlnaXRzIG9ubHkgaW4gdGhlIGZvcm1hdCBvZiBbbnVtXSBbbnVtMl1cbiIpOwogICAgICAgIGV4aXQoMCk7CiAgICB9ICAgIAoKICAgIGFyciA9IGNhbGxvYyhhcnJfc2l6ZSwgc2l6ZW9mKGludCAqKSk7CgogICAgaWYgKE5VTEwgPT0gYXJyKQogICAgewogICAgICAgIHBlcnJvcigiRXJyb3IgQWxsb2NhdGluZyBNZW1vcnkgRm9yIEFycmF5IVxuIik7CiAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyX3NpemU7IGkrKykKICAgIHsKICAgICAgICBhcnJbaV0gPSBjYWxsb2MoaW50c19pbnNpZGVfYXJyLCBzaXplb2YoaW50KSk7CiAgICAgICAgCiAgICAgICAgaWYgKE5VTEwgPT0gYXJyW2ldKQogICAgICAgIHsKICAgICAgICAgICAgcGVycm9yKCJGYWlsdXJlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgaW5uZXIgYXJyYXkhXG4iKTsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZyZWUoYXJyW2pdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmcmVlKGFycik7CiAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICAgICB9CiAgICB9CiAgICBwcmludGYoIkFSUkFZIE9GIElOVFMgQ1JFQVRFRCA6IFxuIik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycl9zaXplOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpbnRzX2luc2lkZV9hcnI7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGFycltpXVtqXSA9IGo7CiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgYXJyW2ldW2pdKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyX3NpemU7IGkrKykKICAgIHsKICAgICAgICBmcmVlKGFycltpXSk7CiAgICB9CgogICAgZnJlZShhcnIpOwoKICAgIHByaW50ZigiQWxsIE1lbW9yeSBTdWNjZXNzZnVsbHkgRnJlZWQhXG4iKTsKCiAgICByZXR1cm4gMDsKfSAgCg==