• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

błąd przy tablicy dynamicznej jednowymiarowej (C)

0 głosów
289 wizyt
pytanie zadane 24 listopada 2020 w C i C++ przez #oliwia Nowicjusz (150 p.)

podczas wczytywania pętla pobiera za dużo wartości do tablicy, nie rozumiem skąd wynika błąd i jak mogę go poprawić.

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

int k, g, gv, o;
int i;

int main(){	
	scanf("%d\n %d\n %d\n %d", &k, &g, &gv, &o);
	int *tab= NULL;
	tab=malloc(o*sizeof(int));
	for(i=0; i<o; i++)
	{
		tab[i]=0;
	}
	for(i=0; i<o; i++)
	{
		scanf("%d ", &tab[i]);
	}
	for(i=0; i<o; i++)
	{
		printf("%d ", tab[i]);
	}
	
	free ( tab ) ;
	tab = NULL ;

	return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 24 listopada 2020 przez profesorek96 Szeryf (91,400 p.)
wybrane 24 listopada 2020 przez #oliwia
 
Najlepsza

Po pierwsze nie ma sensu używać funkcji malloc dla tablic, po to została stworzona funkcja calloc. Funkcja ta tworzy tablice oraz wypełnia ją zerami. Twój problem polegał na tym że źle został napisane parametry formatujące w scanf. Polecam poczytać o buforze znakowym oraz funkcji fflush.

Proszę bardzo:

#include<stdio.h>
#include<stdlib.h>
 
int k, g, gv, o;
int i;
 
int main(){ 
    scanf("%d %d %d %d", &k, &g, &gv, &o);
    int *tab=calloc(o,sizeof(int));
    
    for(i=0; i<o; i++)
    {
        scanf("%d", &tab[i]);
    }
    for(i=0; i<o; i++)
    {
        printf("%d ", tab[i]);
    }
     
    free ( tab ) ;
    tab = NULL ;
 
    return 0;
}

 

1
komentarz 24 listopada 2020 przez #oliwia Nowicjusz (150 p.)
Dziękuje bardzo za odpowiedz, teraz wszystko jasne :)

Podobne pytania

–3 głosów
1 odpowiedź 580 wizyt
0 głosów
3 odpowiedzi 516 wizyt
0 głosów
1 odpowiedź 1,901 wizyt

93,630 zapytań

142,551 odpowiedzi

323,054 komentarzy

63,134 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2174p. - dia-Chann
  2. 2153p. - DziarnowskiJ
  3. 2123p. - Łukasz Piwowar
  4. 2077p. - raydeal
  5. 1989p. - CC PL
  6. 1957p. - Maurycy W
  7. 1954p. - Adrian Wieprzkowicz
  8. 1895p. - rucin93
  9. 1855p. - Michal Drewniak
  10. 1777p. - robwarsz
  11. 1701p. - rafalszastok
  12. 1588p. - Tomasz Bielak
  13. 1491p. - Rafał Trójniak
  14. 1377p. - ssynowiec
  15. 1208p. - Mariusz Fornal
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...