x-kom hosting

Tablica w C

Dartron
utworzono
utworzono

Witam

Mam takie pytanko jak moge uzaleznic wielkosc tablicy od uzytkownika chodzi mi o to zeby User mogl sobie wpisywac jaka duza ma ona byc a potem ja wypelnial

tutaj krotki kod tego programiku

//program that inputs a series of integers and passes them one at a time to the function#include <stdio.h>#include <conio.h>int num, size;//prototypevoid even(int[], int);//main programvoid main(){	int a[1]/*chodzi mi o ta wielkosc mam ja zadeklarowana jako 1 ale chcialem ja uzaleznic od zmiennej size gdy tak zrobie kompilator mi z errorem wyskakuje*/, i;	printf("Please enter how many integers you wanna check: ");	scanf("%d", &size);	fflush(stdin);	//fill the array	for (i=0; i<size; i++)	{		printf("Please enter the number which will be checked: ");		scanf("%d", &a[i]);		fflush(stdin);	}	even(a, size);	getch();}//function's definition void even(int a[], int size){	int i;	for (i=0; i<size; i++)	{		if (a[i] % 2 == 0)			printf("The number %d is even\n", a[i]);		else 			printf("The number %d is not even\n", a[i]);	}}

// W postach znacznika

 używa się bez gwiazdek

// Lucider[/color]

rafalluz
komentarz
komentarz (edytowane)

Interesujący fragment kodu:

scanf("%d", &size);a = malloc(size*sizeof(int));

I na koniec:

free(a);
Dartron
komentarz
komentarz
Interesujący fragment kodu:

Dopiero sie ucze wiec moze nie jest on perfekcyjny ;) ale mowia ze najtrudniejsze sa poczatki

scanf("%d", &size);a = malloc(size*sizeof(int));

I na koniec:

free(a);

A tak dokladniej to za co sa odpowiedzialne te komendy ???

Dzieki Lucider za poprawki

Niestety w moim przypadku to nie dziala

oto lista bledow jakie zostaly znalezione przy kompilacji

Error E2048 p9q4xt.c 4: Unknown preprocessor directive: 'inlcude'

Error E2268 p9q4xt.c 24: Call to undefined function 'malloc' in function main()

Error E2277 p9q4xt.c 24: Lvalue required in function main()

Error E2268 p9q4xt.c 31: Call to undefined function 'free' in function main()

wynika z tego ze musze jakos zadeklarowac to 'malloc' ale nie mam pojecia co to jest nigdy sie z tym nie spotkalem do tej pory

jakis pomysl??

rafalluz
komentarz
komentarz (edytowane)

Widać nie masz

#include <stdlib.h>

na początku.

malloc - alokuje tyle bajtów, ile ma podane w argumencie (size*rozmiar_jednego_inta). Zwraca wskaźnik wskazujący na początek zaalokowanego obszaru lub NULL, jak nie wyjdzie (wiec po mallocu powinieneś zrobić obsługę błędów)

if(a==NULL){  printf("Za malo pamieci!\n");}else{  //działania z pamięcią}

free - zwraca pamięć na końcu, jak już nic z nią nie będziesz robił.

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.