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

Tablica dwuwymiarowa

Object Storage Arubacloud
0 głosów
310 wizyt
pytanie zadane 7 grudnia 2022 w C i C++ przez Janchess Początkujący (480 p.)
edycja 7 grudnia 2022 przez Janchess

Dlaczego w takiej sytuacji otrzymuje komunikat "t": brak indeksu dolnego ? Co robię nie tak ?

void wypelnijTablice(int t[][], int m, int n, int a);

1 odpowiedź

+2 głosów
odpowiedź 7 grudnia 2022 przez Jaaqob Stępień Użytkownik (760 p.)
Opisz dokładniej. Użyj konferencji VLA, czyli najpierw długość tablicy potem wskaźnik do tablicy. Chyba że piszesz w C++ to wtedy nie powinieneś używać tablic tylko wektorów, a długość jest w sektorze.
komentarz 8 grudnia 2022 przez Janchess Początkujący (480 p.)

Chce napisać dwie funkcję, która wypełni mi tablice oraz wypisze ją na ekran. Zrobiłem zatem coś takiego i nie wiem co dalej począć z tymi tablicami. Jeżeli wpisze t[][N] to problem znika, ale pozostaje mi deklaracja int tab[][] w której pojawia się błąd. Dodam, że nie mogę zmienić kolejności argumentów, ani używać wskaźników.

#include <stdio.h>
#define M 10
#define N 10

void wypelnijtab(int t[][], int w, int k, int a);
void wypisztab(int t[][], int w, int k);

int main() {
	int tab[][];
	wypelnijtab(tab, M, N, 1);
	wypisztab(tab, M, N);

	return 0;
}
void wypelnijtab(int t[][], int w, int k, int a) {
	for (int i = 0; i < w; i++) {
		for (int j = 0; j < k; j++) {
			t[i][j] = a;
		}
	}
}
void wypisztab(int t[][], int w, int k) {
	for (int i = 0; i < w; i++) {
		for (int j = 0; j < k; j++) {
			printf("%d", t[i][j]);
		}
		printf("\n");
	}
}

 

komentarz 8 grudnia 2022 przez j23 Mędrzec (194,920 p.)
Przekazując tablicę dwuwymiarową w parametrze funkcji musisz podać jej szerokość, bo inaczej kompilator nie jest wstanie wygenerować kodu (musi wiedzieć przy indeksowaniu, o ile bajtów ma przeskakiwać przy indeksowaniu wierszy).
komentarz 8 grudnia 2022 przez Janchess Początkujący (480 p.)
czyli t[][N] gdzie N - to liczba kolumn załatwi sprawę jeśli chodzi o parametr funkcji ?
komentarz 8 grudnia 2022 przez j23 Mędrzec (194,920 p.)

Tak, tylko N musi być stała.

komentarz 8 grudnia 2022 przez Janchess Początkujący (480 p.)
Ok, jest w porządku. Dziękuje.

Podobne pytania

0 głosów
1 odpowiedź 294 wizyt
+1 głos
4 odpowiedzi 484 wizyt
pytanie zadane 1 lutego 2021 w C i C++ przez forok Nowicjusz (160 p.)
0 głosów
1 odpowiedź 211 wizyt

92,691 zapytań

141,603 odpowiedzi

320,103 komentarzy

62,051 pasjonatów

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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...