#include <stdio.h>
#include <stdlib.h>
typedef struct Slot
{
int min;
int max;
}Slot;
typedef struct Table
{
Slot* *array;
int size;
}Table;
Table* createTable( int size )
{
Table
* table
= malloc( sizeof( Table
) );
if( !table )
return NULL;
table
->array
= ( Slot
(*)[size
] ) malloc( size
* size
* sizeof( Slot
) );
if( !(table->array) )
return NULL;
table->size = size;
return table;
}
void foo( int arr[], int size )
{
Table* table = createTable( size );
if( table == NULL )
{
return;
}
int i;
for( i = 0; i < size; ++i )
(table->array[i][i]).min = (table->array[i][i]).max = arr[i];
}
int main()
{
int arr[] = {4,5,1,5,7,6,8,4,1};
int size;
size = sizeof( arr ) / sizeof( *arr );
foo( arr, size );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IFNsb3QKewoJaW50IG1pbjsKCWludCBtYXg7Cn1TbG90OwoKdHlwZWRlZiBzdHJ1Y3QgVGFibGUKewoJU2xvdCogKmFycmF5OwoJaW50IHNpemU7Cn1UYWJsZTsKClRhYmxlKiBjcmVhdGVUYWJsZSggaW50IHNpemUgKQp7CglUYWJsZSogdGFibGUgPSBtYWxsb2MoIHNpemVvZiggVGFibGUgKSApOwoKCWlmKCAhdGFibGUgKQoJCXJldHVybiBOVUxMOwoKCXRhYmxlLT5hcnJheSA9ICggU2xvdCgqKVtzaXplXSApIG1hbGxvYyggc2l6ZSAqIHNpemUgKiBzaXplb2YoIFNsb3QgKSApOwoKCWlmKCAhKHRhYmxlLT5hcnJheSkgKQoJCQlyZXR1cm4gTlVMTDsKCQoJdGFibGUtPnNpemUgPSBzaXplOwoKCXJldHVybiB0YWJsZTsKfQoKdm9pZCBmb28oIGludCBhcnJbXSwgaW50IHNpemUgKQp7CglUYWJsZSogdGFibGUgPSBjcmVhdGVUYWJsZSggc2l6ZSApOwoKCWlmKCB0YWJsZSA9PSBOVUxMICkKCXsKCQlwcmludGYoICJPdXQgb2YgbWVtb3J5IiApOwoJCXJldHVybjsKCX0KCglpbnQgaTsKCglmb3IoIGkgPSAwOyBpIDwgc2l6ZTsgKytpICkKCQkodGFibGUtPmFycmF5W2ldW2ldKS5taW4gPSAodGFibGUtPmFycmF5W2ldW2ldKS5tYXggPSBhcnJbaV07Cn0KCmludCBtYWluKCkKewoJaW50IGFycltdID0gezQsNSwxLDUsNyw2LDgsNCwxfTsKCWludCBzaXplOwoKCXNpemUgPSBzaXplb2YoIGFyciApIC8gc2l6ZW9mKCAqYXJyICk7CgoJZm9vKCBhcnIsIHNpemUgKTsKCQoJcmV0dXJuIDA7CQp9