» »

Funkcija free() v C-ju!

Funkcija free() v C-ju!

Williams ::

Prosil bi za pomoč. Narediti moram program v C-ju ki ustvari tabelo velikosti N in jo nafila z naključnimi števila 0-100. Očitno moja koda deluje, se pa iz meni neznanega razloga sesuje pri ukazu free(buffer)!?? Ima kdo kakšno idejo?

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void napolni(int N, int *tab){

	int i;
	srand(time(NULL));

	for(i=0;i<=N;i++){
		tab[i]=rand()%100;
	}

}

int main(){

	int N=0;
	int *buffer;
	int i;

	printf("Vnesi velikost polja: ");
	scanf("%d", &N);

	buffer=(int*)malloc(N*sizeof(int));
	napolni(N, buffer);

	free(buffer);
	return 0;
}

kow ::

10. vrstica: i < N

win64 ::

v vrstici 11 pride do prekoračitve indeksa.

Williams ::

O super. Hvala, sploh nisem bil pozoren na to, zato pa mi je javlalo napako pri free. :P

Williams ::

Če sedaj skušam poiskat še največje število v tabeli
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void napolni(int N, int *tab){

	int i;
	srand(time(NULL));

	for(i=0;i<N;i++){
		tab[i]=rand();
	}

}

int max(int N, int *tab)

{

	int i;
	int max=0;

	for(i=0;i<N;i++){
		if(tab[i]>max)
			max=tab[i];
	}
	
	return max;
}

int main(){

	int N=0;
	int *buffer;
	int i;
	int m;
	int maximum;

	printf("Vnesi velikost polja: ");
	scanf("%d", &N);

	buffer=(int*)malloc(N*sizeof(int));
	napolni(N, buffer);
	
	for(i=0;i<N;i++)
		printf("%d\n", buffer[i]);

	maximum=max(N, buffer);

	printf("Maksimum je: %d\n", maximum);

	free(buffer);
	scanf("%d", &m);
	return 0;
}


Zakaj mi v vrstici kjer je glava metode "max" vrne syntax error: "type"??

Williams ::

Sem ugotovil - enako ime spremenljivke in funkcije. ;((


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Qt/QML zajem podatkov iz podatkovne baze, dobim samo opise fieldov ter prazne vrednos

Oddelek: Programiranje
71714 (1457) windigo
»

[Qt/C++]problem z Undefined reference na konstanti znotraj razreda

Oddelek: Programiranje
102328 (1998) phantom
»

[C] Sinhronizacija procesov

Oddelek: Programiranje
71133 (1006) Cvenemir
»

[C] Procesi

Oddelek: Programiranje
6967 (876) Cvenemir
»

[NALOGA][C] - Sortiranje učencev

Oddelek: Programiranje
71316 (1169) m4r3

Več podobnih tem