CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

concatenation de tableaux d'entiers

maskware
maskware
Niveau 8
05 janvier 2003 à 19:52:15

la question est simple, existe t´il en C/C++ une fonction qui peut concatener des tableaux d´entiers ( comme strcat(char*, char*) et qui ne necessiterai pas l´utilisation de vecteurs.

GamerFou2
GamerFou2
Niveau 7
05 janvier 2003 à 20:00:20

c´est à dire ? tu peux donner un exemple ?

Snetch
Snetch
Niveau 10
05 janvier 2003 à 20:09:11

Si j´ai bien compris, tu as un tableau t1 ayant pour valeur [1,2,3,null,null,null] et un autre t2 ayant [4,5,6]

Il doit te suffire de faire une méthode de ce genre, lié au tableau:

void concat(int nINbElementTableau1, int& t1[], int nINbElementTableau2, int[]& t2)
{
for(int i=nINbElementTableau1;i<nINbElementTableau2; i++)
{
t1[i]=t2[i-nINbElementTableau1]];
}
}

j´ai fais cela rapidement, mais cela doit être suffisant

GamerFou2
GamerFou2
Niveau 7
05 janvier 2003 à 20:20:03

Si c´est ce genre de situation tu as tout simplement la fonction wcscat qui concatène 2 chaines de caractères étendus ( unicode & Cie) tu peux intérpréter ces caractère commes des unsigned short ( 16 bits) . ..

Lightness1024
Lightness1024
Niveau 10
05 janvier 2003 à 20:51:42

ya pas de fonction standard déja faite pour ca fo la faire toi meme, c franchement pas bien compliké.

et au passage utilisez ma classe SecureArray documentée en html compilé trop bien lol

http://www.cppfrance.com/article.aspx?Val=840

ya des fonctions ki simplifie la vie des tableaux et les buffer overruns sont sécurisés !
( c une sorte de CArray de la MFC koi : )

pika5
pika5
Niveau 6
05 janvier 2003 à 20:58:21

bonsoir savez vous ou je pourrais trouver un mugen de saint seya?

GamerFou2
GamerFou2
Niveau 7
05 janvier 2003 à 21:09:34

Enfin sinon solution toute conne :
memcpy(destination,source,size);

LcData
LcData
Niveau 6
05 janvier 2003 à 22:11:31

bah fais le en ASM

DarkPaladin
DarkPaladin
Niveau 5
06 janvier 2003 à 05:33:36

void IntCat(int * Dest,int * Src,unsigned int Length)
{
__asm
{
mov esi,Src
mov edi,Dest
mov ecx,Length
rep movsd
}
}

-- int(4octets)

DarkPaladin
DarkPaladin
Niveau 5
06 janvier 2003 à 05:41:12

desoler, j´avais mal lu les messages precedents.
c´etait plus pour void IntCpy(.....)

La nouvelle. . .

void IntCat(int * Dest,int * Src,unsigned int Length)
{
__asm
{
mov edi,Src
mov esi,Dest
mov ecx,Length

LSeek:
lodsd
test eax,eax
jnz LSeek
push edi
push esi
pop edi
pop esi
rep movsd
}
}

DarkPaladin
DarkPaladin
Niveau 5
06 janvier 2003 à 05:59:08

La fonction precedente devient un peu dangereux,si le nettoyage a zero n´est pas fait.

void IntCat(int * Dest,int * Src,unsigned int Length)
{
__asm
{
mov edi,Src
mov esi,Dest
mov ecx,Length

LSeek:
lodsd
test eax,eax
jnz LSeek
push edi
push esi
pop edi
pop esi
rep movsd
xor eax,eax
stosd
}
}

Length = 1 : un int et non le quart d´un int...

void IntCat(int * Dest,int * Src)
{
__asm
{
mov edi,Src
mov esi,Dest
LSeek:
lodsd
test eax,eax
jnz LSeek

push edi
push esi
pop edi
pop esi

LLo:
lodsd
stosd
test eax,eax
jnz LLo
}
}

Je n´ai pas compilé ces fonctions, mais les deux dernieres, devrait fonctionner...

Celle-ci ne vérifie la longeur du tableau.

johnny94
johnny94
Niveau 10
06 janvier 2003 à 11:33:56

pourquoi c´est aussi compliqué la programmation ? ? . ..........

maskware
maskware
Niveau 8
06 janvier 2003 à 14:11:09

merci a ts, mais la reponse de gamerfou suffira, wcscat() convient parfaitement, suffit de faire un cast. je cherchais la solution la + simple, je veux pas tomber dans l´asm =)

GamerFou2
GamerFou2
Niveau 7
06 janvier 2003 à 14:13:17

memcpy pourrait mieux te convenir si tu as besoin d´un format + long que unsigned short...

tomtomclancy
tomtomclancy
Niveau 9
06 mai 2006 à 22:41:14

mouarf! désolé de upper un si vieux topic mais bon vu qu´il en existe un autant ne pas en recreer un autre.

Ma question est simple. La reponse moins.

Je desire creer mon vertexbuffer a partir de vertice contenu par bloc dans un double pointeur (tableau a deux dimension)

recopier les valeur est long, tres long.
Je voudrais savoir si il est possible de former un grand tableau a partir de plusieur en copiant les adresses memoire et non les valeur.

LGV
LGV
Niveau 28
06 mai 2006 à 23:30:39

non.

reorganise ton code et tes data structures pour travailler une zone contigue de memoire (gros bloc en un seul morceau)
tu peux aussi creer un vertex buffer de la bonne taille, et y collecter les vertices de tous tes objets a rendre ; si tu as TROP de donnees a transferer par le vertex buffer et que meme une copie optimisee bouffe un temps monstrueux, simplifie le format de vertex, compresse les infos, supprime les donnees que tu peux "reconstruire" dans un vertex shader, cache des vertices "pret a rendre", etc.

perso j´utilise des algos de collections de vertices sur des dizaines de milliers d´objets, ca n´a jamais pose le moindre soucis,si c´est bien fait.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment