puts a pointer to storage allocated for the new record into newentry and inserts the new record on stack s; this version does not check for overflow but could do so (how to do it depends on what malloc does when it runs out of storage)
newentry = malloc(sizeof(stackrecord));
newentry->info = pnewrecord->info;
newentry->link = *ps;
*ps = newentry;
}