|
| Pascal > C Fra : Harald |
Dato : 13-03-02 15:32 |
|
Hej
I pascal kan man definere et array matrix sådan:
tal : array(.1..3,1..50.) of byte;
Hvordan definere man det samme i C++, jeg bruger Borland C++ version 3.1 fra
1992
Mvh
HK
| |
Bertel Lund Hansen (13-03-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-03-02 17:45 |
|
Harald skrev:
>I pascal kan man definere et array matrix sådan:
>tal : array(.1..3,1..50.) of byte;
>Hvordan definere man det samme i C++
unsigned char array[50][3];
evt.
typedef unsigned char byte;
byte array[50][3];
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Harald (13-03-2002)
| Kommentar Fra : Harald |
Dato : 13-03-02 18:16 |
|
"Bertel Lund Hansen" <nospam@lundhansen.dk> skrev i en meddelelse
news:710v8u43djfcuktnaplmg7rlem7p8u73p0@sunsite.auc.dk...
> Harald skrev:
>
> >I pascal kan man definere et array matrix sådan:
> >tal : array(.1..3,1..50.) of byte;
>
> >Hvordan definere man det samme i C++
>
> unsigned char array[50][3];
>
> evt.
>
> typedef unsigned char byte;
>
> byte array[50][3];
Hvis jeg nu istedet skriver:
unsigned char array[3][50];
Og jeg nu har følgende function:
void SendCmdToCom485Str(unsigned char *cmd)
Kan jeg så gøre således:
SendCmdToCom485Str(array[2]);
og på den måde få sendt (array[2][0] til array[2][50]) til
SendCmdToCom485Str som en streng?
Mvh
HK
| |
Ivan Johansen (13-03-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 13-03-02 18:23 |
|
Bertel Lund Hansen wrote:
> Harald skrev:
>>I pascal kan man definere et array matrix sådan:
>>tal : array(.1..3,1..50.) of byte;
>
> unsigned char array[50][3];
Skulle det ikke være sådan her?
unsigned char array[3][50];
For øvrigt indekseres arrays i C/C++ altid fra 0.
Ivan Johansen
| |
Bertel Lund Hansen (13-03-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-03-02 22:25 |
|
Ivan Johansen skrev:
>Skulle det ikke være sådan her?
>unsigned char array[3][50];
Det kan godt ske. Nu kommer jeg i tvivl for C er jo ret beset
ligeglad.
>For øvrigt indekseres arrays i C/C++ altid fra 0.
Ja, jeg tænkte ikke nærmere over 1-tallerne i Pascalkoden.
Spørgsmålet er om antallet eller indekseringen er afgørende. Man
kan også skrive:
unsigned char array[4][51];
og så indeksere præcis som i Pascal. Det spilder dog 54 bytes i
det her tilfælde.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Ivan Johansen (13-03-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 13-03-02 22:37 |
|
Bertel Lund Hansen wrote:
> Ja, jeg tænkte ikke nærmere over 1-tallerne i Pascalkoden.
> Spørgsmålet er om antallet eller indekseringen er afgørende. Man
> kan også skrive:
>
> unsigned char array[4][51];
>
> og så indeksere præcis som i Pascal. Det spilder dog 54 bytes i
> det her tilfælde.
Det kan man vel i princippet godt. Men sådan gør man normalt ikke i C,
og jeg synes lige så godt at han kan lære at gøre det rigtigt med det samme.
Ivan Johansen
| |
Bertel Lund Hansen (13-03-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-03-02 23:11 |
|
Ivan Johansen skrev:
>Det kan man vel i princippet godt. Men sådan gør man normalt ikke i C,
>og jeg synes lige så godt at han kan lære at gøre det rigtigt med det samme.
Hvad brokkede du dig så over her?
> For øvrigt indekseres arrays i C/C++ altid fra 0.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Ivan Johansen (14-03-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 14-03-02 12:04 |
|
Bertel Lund Hansen wrote:
> Hvad brokkede du dig så over her?
Jeg brokker mig ikke. Jeg vil bare aldrig anbefale nogen at gøre sådan.
Ivan Johansen
| |
Bertel Lund Hansen (15-03-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 15-03-02 13:27 |
|
Ivan Johansen skrev:
>Jeg brokker mig ikke. Jeg vil bare aldrig anbefale nogen at gøre sådan.
Jeg skrev et svar hvor jeg indekserede fra nul. Du skrev:
> For øvrigt indekseres arrays i C/C++ altid fra 0.
Det var det jeg ikke forstod.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Ivan Johansen (15-03-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 15-03-02 21:21 |
|
Bertel Lund Hansen wrote:
> Jeg skrev et svar hvor jeg indekserede fra nul. Du skrev:
>> For øvrigt indekseres arrays i C/C++ altid fra 0.
> Det var det jeg ikke forstod.
Det fremgik ikke klart af dit svar at der skal indekseres fra 0. Jeg
ville bare gøre Harald opmærksom på at man i C/C++ altid indekserer fra
0, i modsætning til Pascal hvor man selv kan bestemme.
Ivan Johansen
| |
Jonas Meyer Rasmusse~ (14-03-2002)
| Kommentar Fra : Jonas Meyer Rasmusse~ |
Dato : 14-03-02 20:35 |
|
"Bertel Lund Hansen" <nospam@lundhansen.dk> wrote in message
news:k3gv8usvaggdjehqmnp5jdgou2rt1cupoa@sunsite.auc.dk...
> Ivan Johansen skrev:
>
> >Skulle det ikke være sådan her?
> >unsigned char array[3][50];
>
> Det kan godt ske. Nu kommer jeg i tvivl for C er jo ret beset
> ligeglad.
Jeg forstår ikke helt hvad du mener med om C er ligeglad.
Det er vel en væsentlig forskel om man vil have int[50][3] eller int[3][50]
?
eller jeg misforstår måske?
mvh Jonas
| |
Ivar (13-03-2002)
| Kommentar Fra : Ivar |
Dato : 13-03-02 21:14 |
|
Harald skrev:
> I pascal kan man definere et array matrix sådan:
> tal : array(.1..3,1..50.) of byte;
>
> Hvordan definere man det samme i C++
unsigned char tal[2][49];
Hvor din indeksering skal være 1 lavere end i det
tilsvarende pascal-program.
Ivar
| |
Ivan Johansen (13-03-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 13-03-02 21:21 |
|
Ivar wrote:
>>I pascal kan man definere et array matrix sådan:
>>tal : array(.1..3,1..50.) of byte;
>
> unsigned char tal[2][49];
Nej, i Pascal har han henholdsvis 3 og 50 indekser, så det skal være:
unsigned char tal[3][50];
Ivan Johansen
| |
Olsen (13-03-2002)
| Kommentar Fra : Olsen |
Dato : 13-03-02 22:27 |
|
> Nej, i Pascal har han henholdsvis 3 og 50 indekser, så det skal være:
> unsigned char tal[3][50];
Fordi.... tal[0 til 2][0 til 49].
Men man skal deklarere [3][50]
Olsen
| |
Ivar (14-03-2002)
| Kommentar Fra : Ivar |
Dato : 14-03-02 19:44 |
|
Ivan Johansen skrev:
> Nej, i Pascal har han henholdsvis 3 og 50 indekser, så det skal være:
> unsigned char tal[3][50];
Selvfølgelig !
Ivar
| |
Andreas Kleist Svend~ (14-03-2002)
| Kommentar Fra : Andreas Kleist Svend~ |
Dato : 14-03-02 20:59 |
|
On Thu, 14 Mar 2002 20:35:18 +0100
"Jonas Meyer Rasmussen" <meyer_remove_@diku.dk> wrote:
> Jeg forstår ikke helt hvad du mener med om C er ligeglad.
> Det er vel en væsentlig forskel om man vil have int[50][3] eller
> int[3][50]?
Ja.
> eller jeg misforstår måske?
Man kan i mange tilfælde bruge int[3][50] og int[50][3] til det samme, man
skal bare huske at bytte om på tallene når man refererer til dem. Uanset
hvilken man bruger får man jo 3 * 50 int.
--
mvh Andreas Kleist Svendsen
| |
|
|