I have an exercise in which I have to read a file containing strings and I have to return the content using one/multiple arrays (this is because the second part of this exercise asks for these lines to be reversed, I'm having problems - and therefore ask for help - with the input). So far, I have this:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LENGTH 1024
int main(int argc, char *argv[]){
    char* input[LENGTH];
    if(argc==2){
        FILE *fp = fopen(argv[1], "rt");
        if(fp!=NULL){
            int i=0;
            while(fgets(input, sizeof(input), fp)!=NULL){
                input[i] = (char*)malloc(sizeof(char) * (LENGTH));
                fgets(input, sizeof(input), fp);
                i++;
            }
            printf("%s", *input);
            free(input);
        }
        else{
            printf("File opening unsuccessful!");
        }
    }
    else{
        printf("Enter an argument.");
    }
    return 0;
}
I also have to check whether or not memory allocation has failed. This program in its' current form returns nothing when run from the command line.
EDIT: I think it's important to mention that I get a number of warnings:
passing argument 1 of 'fgets' from incompatible pointer type [-Wincompatible-pointer-types]|
attempt to free a non-heap object 'input' [-Wfree-nonheap-object]|
EDIT 2: Example of input:
These
are
strings
... and the expected output:
esehT
era
sgnirts
In the exercise, it's specified that the maximum length of a line is 1024 characters.
 
    