România
Roportal.ro

Probleme in C++

Început de alina_ally23, Mar 3 ian 2006 · 132 răspunsuri · 106.875 vizualizări

blackslither3 mesaje#61

un exemplu simplu ce rezuma problema mea :

void change(int *x, int *y){x=y;}

int main(){

int *xx,*yy;

yy = (int*)malloc(sizeof(int));

change(xx,yy);

if(xx == NULL)printf("is null\n");

else printf("---- %d ----\n",*xx);

.................................................. .........

xx nu pointeaza spre valoarea lui yy (*yy) , programu printeaza "is null" si nu inteleg de ce ? ..... xx si yy trebuiesc declarati neaparat ca pointeri la un tip , iar asignarea xx = yy trebuie facauta in func .

eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy

soarce391 mesaje#62
blackslither a scris:
xx nu pointeaza spre valoarea lui yy (*yy) , programu printeaza "is null" si nu inteleg de ce ? ..... xx si yy trebuiesc declarati neaparat ca pointeri la un tip , iar asignarea xx = yy trebuie facauta in func .

eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy

Nu cumva yy este NULL?

Alocarile de memorie trebuiesc verificate inainte de a face operatii cu ele.

argv2.495 mesaje#63
blackslither a scris:
un exemplu simplu ce rezuma problema mea :

void change(int *x, int *y){x=y;}

int main(){

int *xx,*yy;

yy = (int*)malloc(sizeof(int));

change(xx,yy);

if(xx == NULL)printf("is null\n");

else printf("---- %d ----\n",*xx);

.................................................. .........

xx nu pointeaza spre valoarea lui yy (*yy) , programu printeaza "is null" si nu inteleg de ce ? ..... xx si yy trebuiesc declarati neaparat ca pointeri la un tip , iar asignarea xx = yy trebuie facauta in func .

eu credeam ca daca dai ca argument unei functii pointeri , modificarile se salveaza si xx va pointa unde pointeaza si yy

corecteaza (referinta catre pointer)

void change(int *&x, int *&y)

{x=y;}

blackslither3 mesaje#64
argv a scris:
corecteaza (referinta catre pointer)

void change(int *&x, int *&y)

{x=y;}

mersi

CTL15 mesaje#65

Am si eu o problem mica pe care nu stiu sa o fac...ma poate ajuta cineva ? ? ? va rog

Aceasta este problema:

Scrieți o funcție int2car( int i, char b[]) care să creeze un string b din intregul i și să returneze b.

miruna8655 mesaje#68

Buna,

Poti sa dai mai multe detalii te rog? In C++ exista deja o functie predefinita care face asta se numeste itoa, are prototipul char *itoa(int i, char *sir, int baza), unde baza este baza de numeratie in care se face conversia, daca baza este 10 sirul va fi acelasi cu numarul. Ai un exemplu mai jos:

/* itoa example */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
 int i;
 char buffer [33];
 printf ("Enter a number: ");
 scanf ("%d",&i);
 itoa (i,buffer,10);
 printf ("decimal: %s\n",buffer);
 itoa (i,buffer,16);
 printf ("hexadecimal: %s\n",buffer);
 itoa (i,buffer,2);
 printf ("binary: %s\n",buffer);
 return 0;
}

Enter a number: 1750

decimal: 1750

hexadecimal: 6d6

binary: 11011010110

Un exemplu de cum s-ar putea face functia pe care o vrei, folosid functia itoa este urmatorul:

#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
void int2char (int i, char b[20])
{
int j;
itoa(i,b,10);
printf(b);
}
void main()
{int i;
char b[20];
cout<<"i=";
cin>>i;
int2char(i,b);
}

Nu stiu daca este ceea ce iti trebuie tie, de mers merge, insa nu stiu exact ce doresti tu, nu am prea inteles exact din post.

Sper sa-ti foloseasca. Daca vrei altceva mai da detalii

Toate cele bune

argv2.495 mesaje#69

itoa nu este standard; mai bine sa foloseasca sprintf: sprintf(buffer, format, ...)

Pe de alta parte daca as da o astfel de tema unor elevi, le-as cere sa implementeze o functie similara nu sa foloseasca

← Înapoi la Programare