Sie sind auf Seite 1von 7

Aktualisiert vor 53 Minuten 26

LIVE N24 NACHRICHTEN IM STREAM

1.

MEISTGELESENE ARTIKEL
1. MEINUNG ISLAMDEBATTE
Wer Ja zum Islam sagt, muss auch Ja zur Scharia sagen

2.

2.BAD GODESBERG
20-Jhriger im Fall Niklas P. festgenommen

3.

3.EM-KADER 2016
Lws klare Botschaft an Sorgenkind Schweinsteiger

4.

4.YELLOWSTONE-NATIONALPARK
Touristen "retten" Bisonkalb und fllen sein Todesurteil

5.

5.EUROPAMEISTERSCHAFT
Spielplan & Termine zur Fuball-EM 2016 in Frankreich

KULTUR FILMFESTIVAL CANNES

Diese drei Filme sind besonders sehenswert


17.05.2016

SPORT AUFSTIEGSFEIER

Das sagen die Spieler zur Trikot-Provokation von Silly


17.05.2016

POLITIK PUTIN-GEGNER

Kosaken attackieren russischen Oppositionsfhrer Nawalny


17.05.2016

PANORAMA FOTOGRAFIE

Die besten Bilder des Tages


17.05.2016

WETTER
Dresden
Regenschauer
13C

Vorhersage fr:
Ort oder Postleitz

DeutschlandEuropaWelt

TV-PROGRAMM

Was luft im Fernsehen?

Das TV-Programm von heute und dieser Woche im berblick


zum TV-Programm

POLITIK NSU

V-Mann berfiel mit Zschpe-Freundin eine Kneipe


Von Stefan Aust und Dirk Laabs

Ralf Marschner war enger mit dem NSU-Umfeld verbandelt als bisher bekannt. Das belegen Akten ber eine
Schlgerei im Jahr 2001. Warum wurde das Verfahren nicht in den Mnchner Prozess eingefhrt? mehr...
18:26

MEINUNG

ISLAMDEBATTE

Wer Ja zum Islam sagt, muss auch Ja zur Scharia sagen


Von Henryk M. Broder

Wer der Meinung ist, der Is

compilare)e ale funciei.


Dinamic: variabile implementate n heap. Memoria se aloc dinamic (la execuie) n zona heap
ataat programului, dar numai la cererea explicit a programatorului, prin apelarea unor funcii de
bibliotec (malloc, calloc, realloc). Memoria este eliberat numai la cerere, prin apelarea funciei free .
27. Funcii pentru alocarea, realocarea i dealocarea dinamic a memoriei
Memoria se aloc dinamic (la execuie) n zona heap ataat programului, dar numai la cererea
explicit a programatorului, prin apelarea unor funcii de bibliotec (malloc, calloc, realloc). Memoria este
eliberat numai la cerere, prin apelarea funciei free .
Funciile standard pentru alocarea dinamica a memoriei sunt declarate n fiierele stdlib.h i alloc.h.

Alocarea memoriei: void *malloc(size_t size) - Aloc memorie de dimensiunea size octei
void *calloc(int nitems, size_t size) - Aloc memorie pentru nitems de dimensiune size octei i
iniializeaz zona alocat cu zerouri

Cele dou funcii au ca rezultat adresa zonei de memorie alocate , de tip void. Dac cererea de
alocare nu poate fi satisfcut, pentru c nu mai exista un bloc continuu de dimensiunea solicitat, atunci

funciile de alocare au rezultat NULL. Funciile de alocare au rezultat void* deoarece funcia nu tie
tipul datelor ce vor fi memorate la adresa respectiv.
La apelarea funciilor de alocare se folosesc:

Operatorul sizeof pentru a determina numrul de octei necesar unui tip de date (variabile);
Operatorul de conversie cast pentru adaptarea adresei primite de la funcie la tipul datelor
memorate la adresa respectiv (conversie necesar atribuirii ntre pointeri de tipuri diferite).

Realocarea memoriei
Realocarea unui vector care crete (sau scade) fa de dimensiunea estimat anterior se poate face cu
funcia realloc, care primete adresa veche i noua dimensiune i ntoarce noua adres: void *realloc(void*
adr, size_t size).
Funcia realloc realizeaz urmtoarele operaii:

Aloc o zon de dimensiunea specificat prin al doilea parametru.


Copiaz la noua adres datele de la adresa veche (primul parametru).
Elibereaz memoria de la adresa veche.

Eliberarea memoriei
Funcia free are ca argument o adres (un pointer) i elibereaz zona de la adresa respectiv (alocat
dinamic). Dimensiunea zonei nu mai trebuie specificat deoarece este memorat la nceputul zonei alocate
(de ctre funcia de alocare): void free(void* adr);
Eliberarea memoriei prin free este inutil la terminarea unui program, deoarece nainte de ncrcarea
i lansarea n execuie a unui nou program se elibereaz automat toat memoria heap.
28. Alocarea dinamic a memoriei pentru un tablou unidimensional
Structura de v

ector are avantajul simplittii i economiei de memorie fa de alte structuri de date folosite pentru
memorarea unei colecii de date.

Dezavantajul unui vector cu dimensiune fix (stabilit la declararea vectorului i care nu mai poate fi
modificat la execuie) apare n aplicaiile cu vectori de dimensiuni foarte variabile, n care este dificil de
estimat o dimensiune maxim, fr a face risip de memorie. De cele mai multe ori programele pot afla din
datele citite dimensiunile vectorilor cu care lucreaz i deci pot face o alocare dinamic a memoriei pentru
aceti vectori. Aceasta este o soluie mai flexibil, care folosete mai bine memoria disponibil i nu impune
limitri arbitrare asupra utilizrii unor programe. n limbajul C nu exist practic nici o diferen ntre
utilizarea unui vector cu dimensiune fix i utilizarea unui vector alocat dinamic, ceea ce ncurajeaz si mai
mult utilizarea unor vectori cu dimensiune variabil.

Un vector alocat dinamic se declar ca variabil pointer (video) Maia Sandu vs Corina

Fusu n conflictul de la Liceul Dante Aligheri

Profesoara de limb romn de la Liceul Dante Alighieri, Cornelia Munteanu afirm c


reprezentanii Ministerului Educaiei nu[...]
ora: 18:50, 17 mai 2016

1946

Judectorul care i-a permis lui Petrenco s plece din ar, verificat de
Inspecia Juridic

Judectorul care i-a permis lui Grigore Petrenco s prseasc ara, n timp ce se afl sub control
judiciar, este verificat de ctre Inspecia Juridic [...]

care se iniializeaz cu rezultatul funciei de alocare. Tipul variabilei pointer este determinat de tipul
componentelor vectorului.
int * a;

// adresa vector alocat dinamic

printf ("n="); scanf ("%d", &n);


a=(int *) calloc (n,sizeof(int));

// dimensiune vector
// aloca memorie pentru vector

// sau: a=(int*) malloc (n*sizeof(int));

29. Tabloul bideminsional alocat static. Pointer la tabloul unidimesional


Un tablou bidimensional, numit i matrice, are dou dimensiuni, orizontal i vertical, i este definit
prin dimensiune maxim pe orizontal - numr maxim de linii i dimensiune maxim pe vertical - numr
maxim de coloane.
n limbajul C matricele sunt liniarizate pe linii, deci n memorie linia 0 este urmat de linia 1, linia 1
este urmat de linia 2 .a.m.d., cu alte cuvinte, elementele unei matrici sunt memorate pe linii, unele dup
altele ocup un spaiu continuu de memorie. O matrice bidimensional este privit n C ca un vector de
vectori (de linii).
Numele unui tablou este un pointer constant spre primul element (index 0) din tablou. Cu alte
cuvinte, o variabil de tip tablou conine adresa de nceput a acestuia (adresa primei componente) i de aceea
este echivalent cu un pointer la tipul elementelor tabloului. Aceasta echivalen este utilizat de obicei n
argumentele de tip tablou i n lucrul cu tablouri alocate dinamic.

Un tablou este trimis ca parametru unei funcii folosind pointerul la primul element al tabloului. n
declararea funciei putem folosi notaia specific tabloului (ex. int[]) sau notaia specific pointerilor (ex.
int*). Ele vor fi tratate ca int*(pointer de tip integer) de ctre compilator. Dimensiunea din parantezele
drepte este ignorat. Numrul de elemente din tablou trebuie trimis separat, sub forma unui al doilea
parametru de tip int.
30. Trimiterea tabloului bidimensional alocat static n fucie
Pentru declararea unei funcii care primete o matrice ca parametru avem urmtoarele

posibiliti:
int min( int t[][NMAX], int m, int n);
int min( int *t [NMAX], int m, int n);
int min( int **t, int m, int n);
Apelul funciei se va face astfel:
int a[NMAX][NMAX], m, n;
..
int mimim = min( a, m, n);
Observaii:
n aplicaiile numerice se prefer argumentele de tip vector i adresarea cu indici,
iar n funciile cu iruri de caractere se prefer argumente de tip pointer i
adresarea indirect prin pointeri.
funcie poate avea ca rezultat un pointer dar nu i rezultat vector.
Diferena mn ofer i-a fcut praf BMW-ul dup ce a ajuns cu el ntr-un panou de publicitate.
Accidentul s-a produs pe bulevardul Dacia din ccapital.
Din imaginile plasate pe Internet se vede c ma ia a fost grav avariat n partea din fa .
Din fericire nimeni nu a avut de suferit. Oamenii legii urmnd s stabileasc circumstan ele producerii
accidentului.

ajor dintre o variabil pointer i un nume de vector este aceea c un nume de vector este un pointer
constant (adresa este alocat de compilatorul C i nu mai poate fi modificat la execuie). Un nume de vector
nu poate apare n stnga unei atribuiri, n timp ce o variabil pointer are un coninut modifica

,
"".
, ,
.
5591

,
,
. 300 .


, , .

bil prin atribuire sau prin operaii aritmetice.