Który kod jest lepszy
void funkcja(int n)
{
char *a = malloc(sizeof(char)*n);
}
czy
void funkcja(unsigned int n)
{
char *a = malloc(sizeof(char)*n);
}
Który kod jest lepszy
void funkcja(int n)
{
char *a = malloc(sizeof(char)*n);
}
czy
void funkcja(unsigned int n)
{
char *a = malloc(sizeof(char)*n);
}
Zdecydowanie powinno to wygladac tak:
void funkcja(int n)
{
char *a = new char[n];
}
A juz w ogóle to the best:
#include <string>
std::string a;
Tylko ze teraz to juz jest string a nie ciag znakowy(ale wszystko zalezy do czego chcesz to uzywac)
odradzam malloc,operator new jest nie tylko prostszy w uzyciu ale i bezpieczniejszy.... tlko nie zapomnij na koncu delete a; bo bedziesz mial wyciek pamieci :( (podobnie zreszta jak przy malloc() bez free())
Lepszy pod jakim wzgledem? Szybkosci?
Jezeli tak, to drugi, bo wykonywane jest mnozenie bez znaku, odrobine szybsze. Dodatkowo malloc wymaga size_t, ktory jest typu unsigned int, wiec nie jest wymagana niejawna konwersja (ale moze taka wystapic przy wywolaniu twojej funkcji).
/* Dopisane */
Styx: tylko jest pare ale...