C++ Char pointeur vers char tableau

Aucune des réponses que j'ai lu de travail, donc je suis en demandant de nouveau.

Je suis en train de copier le string données pointé par un pointeur de char en char tableau.

J'ai une fonction qui lit un ifstream dans un char tableau

char* FileReader::getNextBytes(int numberOfBytes) {
    char *buf = new char[numberOfBytes];

    file.read(buf, numberOfBytes);

    return buf;
}

Je puis avoir une structure (struct):

struct Packet {
    char data[MAX_DATA_SIZE]; //can hold file name or data
} packet;

Je veux copier ce qui est retourné à partir de getNextBytes(MAX_DATA_SIZE) des paquets.de données;

EDIT: Laissez-moi vous montrer ce que j'obtiens avec toutes les réponses obtenu ci-dessous (memcpy, strcpy, en passant comme paramètre). Je pense que l'erreur vient d'ailleurs. Je suis en train de lire un fichier binaire (c'est un png). Je vais boucle tandis que la fstream est bonne() et de les lire à partir de la fstream dans le buf (qui pourrait être le tableau de données). Je veux voir la longueur de ce que j'ai lu :

cout << strlen(packet.data) << endl;

Cela renvoie tailles différentes à chaque fois:
8
529
60
46
358
66
156
Après que, apparemment, il ne reste plus d'octets à lire même si le fichier est 13K + octets de long.

ou vous pouvez simplement passer dans getNextBytes un pointeur sur le paquet.données... puis vous mettez le directement les données et éviter à la fois la création d'un parasite tableau de caractères et de la copie.
ce qui n'a pas de travail? avez-vous essayé strcpy ou strncpy? est votre buf correctement NULL?
J'ai essayé les deux et, oui, buf est bien une valeur NULL. Buf est effectivement binaire des données lues à partir d'un fichier fstream
Si vous avez dû re poste en raison de l'absence de réponses ou de solutions correctes, essayez de l'attribution d'un Bounty sur la question

OriginalL'auteur Sotirios Delimanolis | 2012-03-01

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *