Zdravím,
v C jsem vcelku začátečník a mám následující problém s ukazateli. Jak mám zajistit aby když přiřadím do proměné "a" hodnotu 12 abych s ní mohl pracovat i ve funkci main? vím že tam mám něco blbě ale nevím co.
void test(int *a)
{
a = (int*)malloc(sizeof(int));
a = 12;
}
int main()
{
int *a;
test(&a);
printf("%d", a);
return 0;
}
Fórum › C / C++
Ukazatele
v prve rade je tam par chyb .. . ve funkci je vhodne pouzit test( int ** a )
pak *a = (int*)malloc(sizeof(int));
a nakonec **a = 12
pak by to mohlo dle letmeno odhadu fungovat
Stačí sledovat hlášení compileru, všecko se tam píše
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *a;
a = (int*)malloc(sizeof(int));
*a = 12;
printf("%d", *a);
free(a);
return 0;
}
Jestli chceš tu funkci test, je lepší ji psát takhle:
#include<stdio.h>
#include<stdlib.h>
int * test()
{
int *a;
a = (int*)malloc(sizeof(int));
*a = 12;
return a;
}
int main()
{
int *a;
a = test();
printf("%d", *a);
free(a);
return 0;
}
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 106 hostů
Moderátoři diskuze