Dzień dobry, przeczytałem sobie kurs C++ i mam taką
niejasność, chodzi mi o rozmiar zmiennej dynamicznej:
#include <stdio.h>
#include <stdlib.h>
int main() {
char *text;
text = (char*) malloc(1);
*text = 'a';
*(text+1) = 'b';
printf("%s", text);
system("pause > nul");
free(text);
return 0;
}
według tego co napisali w kursie to malloc(n) przydziela pamięć
wielkości n bajtów i zwraca do niej wskaźnik.
-
No i teraz pytanie: dlaczego do tej pamięci udaje się zapisać
dwa bajty i na ekranie wyświetla się ciąg "ab", skoro rozmiar
przydzielonej pamięci to tylko jeden bajt ? -
Czy dla zmiennej typu wskaźnikowego:
*(zmienna+n) jest równoznaczne ze zmienna[n] ?
- Gdzie znajdę jakiś help, może być z przykładami, byle by nie był
kursem ;-) Coś pod kątem Dev C++ 4 ?