Все, что вы сделали, это указали локальный указатель на int NumRecPrinted
на новое целое число внутри функции demo
.
Вы хотите изменить целое число, на которое оно указывает, не меняйте, куда он указывает.
*NumRecPrinted = no_of_records;
Вы можете увидеть в своей версии, что вы берете адрес локальной переменной, и вы знаете, что это не адреста переменная, о которой вы заботитесь, но ее значение.