For starters, that won't compile at all on many systems: you are lacking some of the forward declarations. You should also include a reference to
string.h
Then try changing your assignment:
ptr = &data;
To
ptr = data;
As a "whole program", this should work:
#include <stdio.h>
#include <string.h>
#define SIZE 7
struct record
{
char name[11];
};
void init_struct(struct record *ptr);
void display_struct(struct record data[SIZE]);
void display_data(struct record data[SIZE]);
void init_data(struct record *ptr);
int main(void)
{
struct record data[SIZE];
init_data(data);
display_data(data);
return 0;
}
void display_data(struct record data[SIZE])
{
int i;
for(i = 0; i < SIZE; i++)
{
printf("Name %d : %s\n", i + 1, data[i].name);
}
}
void init_data(struct record *ptr)
{
int i;
for(i = 0; i < SIZE; i++)
{
strcpy(ptr[i].name, "Init");
}
}