Your function should return an int pointer, not an int:
int *create_array(int N)
You'll need to change the declaration and definition.
The compiler is warning that you're trying to treat an integer as a pointer and vice versa. You should probably set your compiler to treat warnings as errors if that only generates a warning, it usually indicates a serious mistake.
Also note that the use of capitals is usually reserved for constants.
Finally, you should free() pointers returned from malloc() when you are finished with them. Otherwise, in bigger programs you will be creating memory leaks.