rozmiar tablicy

Awatar użytkownika
bisz
Użytkownik
Użytkownik
Posty: 572
Rejestracja: 13 paź 2004, o 18:29
Płeć: Mężczyzna
Lokalizacja: Szczecin
Podziękował: 4 razy
Pomógł: 27 razy

rozmiar tablicy

Post autor: bisz »

jest jakas funkcja ktorej jezeli podstawimy adres tablicy to zwroci nam jej wymiar, (ile wierszy na ile kolumn ) ( np jeden wymiar jezeli jest kwadratowa bo o takie mi sie rozchodzi )
arigo
Użytkownik
Użytkownik
Posty: 852
Rejestracja: 23 paź 2004, o 10:17
Płeć: Mężczyzna
Lokalizacja: Lublin
Pomógł: 28 razy

rozmiar tablicy

Post autor: arigo »

rozumiem ze masz na mysli tablice dwuwymiarowe.
takowa macierz (w ogolnej postaci) jest reprezentowana w pamieci jako tablica jednowymiarowa bez zadnych roznic na poziomie pamieci gdzie sie konczy jeden wiersz a zaczyna drugi.wiec nie jest mozliwe wykonanie czegos takiego
Awatar użytkownika
bisz
Użytkownik
Użytkownik
Posty: 572
Rejestracja: 13 paź 2004, o 18:29
Płeć: Mężczyzna
Lokalizacja: Szczecin
Podziękował: 4 razy
Pomógł: 27 razy

rozmiar tablicy

Post autor: bisz »

niby tak, ale pomyslalem sobie, mozna zrobic sizeof podzielony przez 4 czy liestam bajtow zaleznie od typu i pierwiastek naturalny kwadratowy, powinno dać rozmiar czy sie myle
arigo
Użytkownik
Użytkownik
Posty: 852
Rejestracja: 23 paź 2004, o 10:17
Płeć: Mężczyzna
Lokalizacja: Lublin
Pomógł: 28 razy

rozmiar tablicy

Post autor: arigo »

okresl sie jednoznacznie co masz dane. czy sam adres poczatku macierzy czy jeszcze typ elementow czy cos jeszcze.
Awatar użytkownika
bisz
Użytkownik
Użytkownik
Posty: 572
Rejestracja: 13 paź 2004, o 18:29
Płeć: Mężczyzna
Lokalizacja: Szczecin
Podziękował: 4 razy
Pomógł: 27 razy

rozmiar tablicy

Post autor: bisz »

adres typ i to ze ma byc kwadratowa
arigo
Użytkownik
Użytkownik
Posty: 852
Rejestracja: 23 paź 2004, o 10:17
Płeć: Mężczyzna
Lokalizacja: Lublin
Pomógł: 28 razy

rozmiar tablicy

Post autor: arigo »

Kod: Zaznacz cały

gosc@menachem:~/arigo$ cat macierz2.c
#include <stdio.h>
#include <math.h>

int main(void) {

int tab5[5][5];


printf("wymiar: %d
",(int)sqrt(sizeof(tab5)/(sizeof(**tab5))));


return 0;
}
gosc@menachem:~/arigo$ gcc macierz2.c -o macierz2 -lm
gosc@menachem:~/arigo$ ./macierz2
wymiar: 5
takie cos da sie zrobic nawet nie znajac typu natomiast jesli chcesz pisac funkcje ktora by to robila to mozesz miec problem gdyz raczej jest to niewykonywalne

pozdrawiam

--------------
edit

ok juz znowu jestem online;) podsumowujac nie da sie tego zrobic przy zalozeniach jakie podales
ODPOWIEDZ