| Easyscorpions a întrebat:

Am incercat sa scriu un C un program prin care sa calculez suma a doua numere alocate dinamic, doar ca la compilare am mai multe erori si nu inteleg ce am gresit.

Răspuns Câştigător
| T0T a răspuns:

De asemenea tu la scanf("%d,%d", a, b); ai pus virgulă și nu se pune!
Trebuia scanf("%d%d", a, b);

Iar tu când afișezi suma nu afișezi s ci *s că așa îți dă adresa sumei și normal că îți va da un număr mare care nu e suma ci adresa ei!


Acum merge:

https://postimg.org/image/txqjur20z/

7 răspunsuri:
| Mihaelablabla a răspuns:

Pai si noi de unde sa stim daca nu vedem o poza, ceva?

| Easyscorpions explică (pentru Mihaelablabla):

#include

#include
int main()
{
int *a, *b, *s;

a=malloc(sizeof(int));

b=malloc(sizeof(int));

scanf("%d,%d", a, b);
s= (int*)malloc(sizeof(int));


*s=*a+*b;
printf("Suma este %d", s);
return 0;
}

| Easyscorpions explică (pentru Mihaelablabla):

Momentan imi ruleaza programul, doar ca odata ce introduc o valoare de la tastatura imi returneaza imediat un numar foarte mare. Ma gandesc ca am gresit eu, dar nu stiu ce mai exact, iar numarul introdus de mine cred ca este considerat o adresa. Si programul imi returneaza valoarea de la acea adresa. Asa e?

| Mihaelablabla a răspuns (pentru Easyscorpions):

Nu cumva a si b trebuie sa fie variabile normale, nu pointere?
Am descifrat un pic, nu sunt sigura, caci eu fac in C++ la liceu.

| Easyscorpions explică (pentru Mihaelablabla):

Si in c++ cum s-ar rezolva problema?

| T0T a răspuns (pentru Easyscorpions):

La a și b nu trebuia să scrii ceva gen a= (int*)malloc(sizeof(int));? (cum ai făcut la s)

| Easyscorpions explică (pentru T0T):

Am inteles. Multumesc. Am corectat si rulează.

| T0T a răspuns (pentru T0T):

De asemenea tu la scanf("%d,%d", a, b); ai pus virgulă și nu se pune!
Trebuia scanf("%d%d", a, b);

Iar tu când afișezi suma nu afișezi s ci *s că așa îți dă adresa sumei și normal că îți va da un număr mare care nu e suma ci adresa ei!


Acum merge:

https://postimg.org/image/txqjur20z/