Déclaration dynamique d'un tableau de chaine de caractères

Déclaration dynamique d'un tableau de chaine de caractères - C++ - Programmation

Marsh Posté le 26-04-2008 à 14:38:34    

Bonjour,
Je suis débutant et mon code suivant ne passe pas à la compilation (Mon objectif est d'allouer dynamique un tableau de chaine de caractères)
 
Monfichier.h :
 
typedef struct MaStruct
{
           ...
           ...  
           char      *MonTableau[30]; // Je veux que la taille de mes chaines de caractère soit de 30
 
}MaStruct;
 
Monfichier.cpp :
 
 ...
 MaStruct->MonTableau= new char[TailleDynamic][30] ;  
 ...
 
Le message d'erreur à la compilation :
 
cannot convert from 'char (*)[30]' to 'char *[30]'
 
 
Merci d'avance pour votre aide

Reply

Marsh Posté le 26-04-2008 à 14:38:34   

Reply

Marsh Posté le 26-04-2008 à 14:41:18    

Code :
  1. typedef struct MaStruct
  2. {
  3.            ...
  4.            ... 
  5.            (char*) MonTableau[30]; // Je veux que la taille de mes chaines de caractère soit de 30  
  6.  
  7. }MaStruct;

Reply

Marsh Posté le 26-04-2008 à 16:38:19    

vector<string> et on en parles plus :o

Reply

Marsh Posté le 29-04-2008 à 04:22:35    

ca c'est du paradigme C pur et dur.
mais ton nom de fichier porte l'extension cpp a ce que je vois, donc il va falloir apprendre a faire du C++
=> Joel F +1 : vector<string> et on en parles plus.
 
note subsidiaire, pas besoin de typedef inutile, struct/class/union/enum définissent un nouveau type. (contrairement au C qui défini seulement un tag)


---------------
http://projets.6mablog.com/
Reply

Marsh Posté le 03-05-2008 à 15:40:14    

il peut vouloir utiliser des char* dans un soucis d'optmisation, ou pour s'affranchir de la dépendance du compilo (une lib (sans ses sources) comprenant des std::string compilée avec le compilo X ne sera utilisable qu'avec ce même compilo X, alors qu'un char* ça reste un char*). Regardez comme std::fstream ou std::exception::what() utilisent des char* pour justement ne pas forcer l'utilisateur à utiliser string.
 
maintenant +1 sur le fait que std::vector<std::string> c'est la meilleure chose à faire en C++ et que les typedef sont inutiles.

Reply

Marsh Posté le 03-05-2008 à 16:53:17    

je susi entièrement d'accord. Pour avoir eu à souffrir de l'implantation de la STL sur la Fedora du CELL v_v ... je ne peut qu'approuver

Reply

Marsh Posté le 03-05-2008 à 17:12:54    

sur CELL ?
le proc de la PS3 ? Je vois pas le rapport avec Fedora, mais je suis surement à coté de la plaque... :D

Reply

Marsh Posté le 03-05-2008 à 19:18:56    

oui et des QS20 IBM aussi ;)
en gros, l'OS de ces bestiaux , c'ets un Fedora Core "custom".
La STL link vers un .a de genre 358Ko.
Manque de bol, la memoire d'un SPE du CELL fait 256Ko :o
Linker avec libstd sur CELL = fail :p
Donc go back to char* etc ;)

Reply

Marsh Posté le 03-05-2008 à 21:25:51    

l'OS de la PS3 c'est une Fedora !!?!
Je connais pas trop les OS de consoles, je bosse dans le JV, mais uniquement sur PC.
Je vais faire un tour sur wikipedia pour avoir des infos, c'est interressant !

Reply

Marsh Posté le 03-05-2008 à 22:03:55    

l'OS de dev. ;) C'ets aussi l'OS que tu mets sur les QS20

Reply

Marsh Posté le 03-05-2008 à 22:03:55   

Reply

Marsh Posté le 04-05-2008 à 22:00:02    

skoi un QS20 ?
connait pas :??:

Reply

Marsh Posté le 04-05-2008 à 22:15:54    

des serveurs blades utilisant le CELL comme CPU http://en.wikipedia.org/wiki/IBM_BladeCenter#QS20


Message édité par masklinn le 04-05-2008 à 22:16:18

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-05-2008 à 22:19:53    

ok merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed