/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste