begin process at 2012 05 29 22:29:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme de tableau entre C et C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de tableau entre C et C++

vendredi 6 février 2004 à 19:00:59 | Probleme de tableau entre C et C++

fred23


Bonjour,

J'ai récupéré des codes qui semblent en C et je souahiterais les mettre en C++.
qui peut me dire si ces codes sont en C ou C++.

Matrix = (int **)malloc(size* sizeof(int *));
if (Matrix == NULL)
{
cout<<"\nEchec lors de l'allocation memoire!!!";
}
for (k=0;k<size;k++)
{
Matrix[k] = (int *)malloc(height * sizeof(int));
if (Matrix[k] == NULL)
{
for (l=0;l<k;l++)
{
free(Matrix[l]);
cout<<"\nEchec lors de l'allocation memoire!!!";
}
}
}


Merci
vendredi 6 février 2004 à 19:02:45 | Re : Probleme de tableau entre C et C++

djl


ce code est crade, c'est un melange de c et c++
vendredi 6 février 2004 à 19:42:37 | Re : Probleme de tableau entre C et C++

Matt67

Bonjour,

Mise a part les cout, l'allocation et la liberation de la memoire
(malloc et free) c'est du C.

Un petit probleme : L'appli verifie bien que les allocations ont reussi mais si elles echouent, le programme, mise a part un message, ne fait aucun traitement (sortie de la fonction, fin du programme ou autre chose)

Matt...
vendredi 6 février 2004 à 20:17:50 | Re : Probleme de tableau entre C et C++

djl


mon dieu, decidement apres l'avoir foutu dans l'editeur j'ai vu ce que ce code faisait, c'est crade c un truc de ouf

dans la boucle for si ca a pas marcher tu libere les precedent mais tu quitte pas ce qui fait que la prochaine fois que l'allocation est impossible gros plantage!

pour finir c'est trop bizar je vois pas l'utiliter de faire ca, jette ce code a la poubelle!
vendredi 6 février 2004 à 20:35:33 | Re : Probleme de tableau entre C et C++

Matt67

Bonsoir,

Excuse moi djl mais ce principe permet d'allouer de la memoire pour un tableau a deux dimensions.
(un tableau de pointeurs)...
Mise a part la gestion d'erreur, c'est comme ca que l'on peut proceder en C.
Une autre maniere est d'allouer avec un (*type)malloc(ligne * colonne * sizeof(type)) et de gerer les lignes et les colonnes "a la main"...

Matt...
vendredi 6 février 2004 à 20:40:25 | Re : Probleme de tableau entre C et C++

djl


for (k=0;k<size;k++)
{
Matrix[k] = (int *)malloc(height * sizeof(int));
if (Matrix[k] == NULL)
{
for (l=0;l<k;l++)
{
free(Matrix[l]);
cout<<"\nEchec lors de l'allocation memoire!!!";
}
}
}

==> avec ca, ya risque de liberer un pointeur qu'il l'est deja, et donc de flinguer le gestionnaire de memoire, ca te gene pas?

il faut sortir, car l'allocation a echouer et au moins mettre les pointeurs a null (0)
vendredi 6 février 2004 à 22:32:22 | Re : Probleme de tableau entre C et C++

Matt67

Bonsoir,

Relit mon post :
[..] Mise a part la gestion d'erreur, c'est comme ca que l'on peut proceder en C.[..]

Il est évident, qu'apres un free, il doit mettre a NULL les pointeurs qui pointaient sur l'espace memoire.

Une petite remarque : avec la deuxieme boucle, il ne libere que l'espace memoire pointée avec un pointeur valide.

Matt...
samedi 7 février 2004 à 09:22:41 | Re : Probleme de tableau entre C et C++

djl


oui mais si il retourne une 2e fois dans la boucle il liberera ce qui a deja ete libere, non?
samedi 7 février 2004 à 18:05:10 | Re : Probleme de tableau entre C et C++

vecchio56

Administrateur CodeS-SourceS
fait tout en C++ et utilise les exceptions, la tu es sur de tout arrêter s'il y a un problème
samedi 7 février 2004 à 18:14:05 | Re : Probleme de tableau entre C et C++

djl


debtoute facon ce mem code en c++ ne pose aucun probleme vu que l'operateur delete met le pointeur a NULL, ce qui fait qu'on peut faire 2 delete de suite sans plantage :D

1 2

Cette discussion est classée dans : int, probleme, tableau, codes, matrix


Répondre à ce message

Sujets en rapport avec ce message

Probleme de tableau [ par manta7 ] Bonjour, j'ai un petit problème avec la compilationde ce code : int *t; t = malloc(B * sizeof (int)); Je suis sous Microsoft Visual C++ 6 mais je pr probleme d'initialisation d'un tableau sous code blocks [ par juju116 ] bonjour j'ai voulu juste tester un code bidon pour voir si mon initialisation de tableau fonctionné et j'ai obtenu des résults incoherents je n'ai que Allocation dynamique tableau 2D : erreur de seg [ par noname001 ] Bonjour à tous, [^^happy13] j'aimerais faire appel à vos lumières concernant deux codes. Ils ont tous les deux pour but de créer un tableau 2D dynami problème de allocation de tableau [ par boualiasma ] Bonsoir, Je voulais copier le contenu de fichier "exemple.txt" dans un tableau dynamique t de taille inconnue en avance. J'utilise le tableau pour fa probleme thread/ SDL [ par ritchou42 ] salut tout le monde [^^happy7] voila je suis entrain de coder un gros projet pour mon école et j'ai un probleme au niveau de se code [code=cpp] int Convertir tableau int en const char* et inverse [ par samuraijack1412 ] Bonjour,J'ai écrit une application client-serveur. Ils se communiquent par des sockets TCP. Pour envoyer au serveur un tableau d'entier, j'utilise:int Probleme passage tab** de fonctions a fonction. [ par Nitrakz ] Bonjour tous le monde ! Comme l'explique le titre j'ai un petit soucis pour passer un tableaux a 2 dimensions tab[i][j] d'une fonction a une autre. c++ : problème de tableau dynamique dans une classe [ par rollingsteen ] Hello, je dois développer une application permettant de travailler sur de très gros nombres (200 digits) -> les digits sont stockés dans un tableau. Probleme d'algo pour toutes combinaisons possible d'un tableau [ par arnaud8888 ] Bonjour à tous, j'ai un problème d'algo ... en gros j'ai un tableau qui contient des valeurs, disons : A B C D j'aurais besoin à la fin de mon algo pile dynamique [ par korin221 ] Bonjour! Voila j'ai un problème. Je voudrais mélanger ma pile dynamique de façon aléatoire. Peut on directement mélanger la pile ou alors passer la pi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,638 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales