cust[0]
is null thus trying to access one of his properties or methods before assigning it a value will cause this exception.
You main misunderstanding - by initializing cust you didn't initialized any one of the objects in it ( cust[i] will be null for every i).
You need to validate it before using it:
class main_menu
{
Customer[] cust = new Customer[100];
// some other data members
public void new_customer()
{
cust[0] = new Customer();
// when you want to use it later on, do this validation.
if (cust[0] != null)
{
cust[0].add_customer();
}
}
}