diff --git a/C17/ex2.c b/C17/ex2.c new file mode 100644 index 0000000..c26b245 --- /dev/null +++ b/C17/ex2.c @@ -0,0 +1,62 @@ +#include +#include +#include + + +float degrees_to_radians(float degrees) { + return M_PI * degrees / 180.0; +} + + +// Simple function to populate an integer array +void PopulateTheArray ( int Size, float ArrayData[]) +{ + int i; // Variable to use in our loop + + for ( i = 0 ; i < Size ; i++) + { + ArrayData[i] = degrees_to_radians(i); // Treat it like a normal array + } +} +// Simple function do display contents an integer array +void DisplayTheArray ( int Size, float ArrayData[]) +{ + int i; // Variable to use in our loop + + for ( i = 0 ; i < Size ; i++) + { + printf ("%d\t%0.3f\n", i, ArrayData[i]); + } +} +// Main () - execution starts here +int main (void) +{ + + int iSizeForArray; + float *pData; // A pointer to hold the base address of out array + + // Ask for the size of the array and store result + + printf("Please enter the size of the array to dynamically allocate: "); + scanf ("%d", &iSizeForArray); + + // Use calloc with checking + pData = calloc( iSizeForArray, sizeof (float)); + + // Check we got the memory + if ( pData == NULL) + { + printf ("Sorry, I could not allocate the memory, bye!\n"); + return -1; + } + + // Pass the size, iSizeForArray) and the pointer created + // which points to the start of the sucesfully allocated memory + + PopulateTheArray(iSizeForArray, pData); + DisplayTheArray(iSizeForArray, pData); + + free(pData); // Free up the memory before exiting + + return (0); // Exit indicating sucess +}