Tengo un problema en este código, el puntero es una matriz a la que le doy a cada elemento el valor 'f', el problema esta en cuando lo imprimo al archivo. El total de elementos no se corresponde con el tamaño elegido. Por ejemplo si pongo 100, me imprime 100 'f' mas basura que no se porque sale.¿Alguien sabe porqué?
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int nElementos = 0;
char *PnElementos = NULL;
int i = 0;
printf("Numero de elementos de la matriz: "); printf("ELEMENTOS: %d",nElementos
); Sleep(2000);
PnElementos
= (char*)malloc((nElementos
+ 1) * sizeof(int));
for(i=0;i<nElementos;i++)
{
PnElementos[i]='f';
printf("Valor de elemento(%d) = %c\n",i
,PnElementos
[i
]); }
PnElementos[i]='\0';
Sleep(5000);
ofstream fichero;
fichero.open("archivo.txt");
fichero << PnElementos;
fichero.close();
}