On every iteration input stream is copied to content and address of content is stored in array.
Hence content is overwritten again and again and address is copied to every index of array
for(int i=0;i<time;i++){
scanf("%s",content);
array[i]=content; //Here every array[0..time] is assigned with address of content
}
Which in short behaving as follows,

what you need is new storage location for every iteration which either dynamically allocated through malloc from heap as follows,
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int i;
char content[10];
int n;
scanf("%d", &n);
char*array[n];
for (i = 0; i < n; i++) {
scanf("%9s", content); //ensure no more than 10 letter added includeing '/0'
char*c = malloc(strlen(content));
if(c)
{
strncpy(c,content,strlen(content));
array[i] = c;
}
else
{
exit(0);
}
}
for (i = 0; i < n; i++) {
printf("%s\n", array[i]);
}
for (i = 0; i < n; i++) {
free(array[i]);
}
}
or through VLA's as follows,
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int i;
int n;
scanf("%d", &n);
char*array[n];
char content[n][10];
for (i = 0; i < n; i++) {
scanf("%9s", content[i]);
array[i] = content[i];
}
for (i = 0; i < n; i++) {
printf("%s\n", array[i]);
}
}
contenthave? After you assigncontentto every pointer, what address do you expect each pointer to point to?