vendredi 12 janvier 2024

Why are all the strings the same

For test my hashmap on C language I need to generate many keys (string). I wrote this code for generate keys. And this code doesn't works.

    char* keys [15] = { 0 };

    for (int i = 0; i < 15; i++)
    {
        char key [7] = { 0 };
        for(int j = 0; j < 5; ++j)
        {
            int rand_char = rand()%26+'A';
            key[j] = (char)rand_char;
        }
        *(keys + i) = key; 
    }

    for (int i = 0; i < 15; i++)
        printf("%s\n", keys[i]); 

The problem is all keys are the same and I don't know why this happens. OUPUT:

MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ

I tried putting the random result into a variable (int rand_char) and also tried the debug keys during the generation process and saw that all the letters change when new letters are generated, as if all the lines were one string.

char* keys [15] = { 0 };

for (int i = 0; i < 15; i++)
{
    char key [7] = { 0 };
    for(int j = 0; j < 5; ++j)
    {
        int rand_char = rand()%26+'A';
        key[j] = (char)rand_char;
        for (int k = 0; k < i; k++)
            printf("%s\n", keys[k]); 
    }
    *(keys + i) = key; 
}

OUPUT:

B
BM
BMQ
BMQB
BMQBH
C
C
CD
CD
CDA
CDA
CDAR
CDAR
CDARZ
CDARZ
O
O
O
OW
OW
OW
OWK
OWK
OWK
OWKK
OWKK
OWKK
OWKKY
OWKKY
OWKKY
H
H
H
H
HI
HI
HI
HI
HID
HID
HID
HID
HIDD
HIDD
HIDD
HIDD
HIDDQ
HIDDQ
HIDDQ
HIDDQ
S
S
S
S
S
SC
SC
SC
SC
SC
SCD
SCD
SCD
SCD
SCD
SCDX
SCDX
SCDX
SCDX
SCDX
SCDXR
SCDXR
SCDXR
SCDXR
SCDXR
J
J
J
J
J
J
JM
JM
JM
JM
JM
JM
JMO
JMO
JMO
JMO
JMO
JMO
JMOW
JMOW
JMOW
JMOW
JMOW
JMOW
JMOWF
JMOWF
JMOWF
JMOWF
JMOWF
JMOWF
R
R
R
R
R
R
R
RX
RX
RX
RX
RX
RX
RX
RXS
RXS
RXS
RXS
RXS
RXS
RXS
RXSJ
RXSJ
RXSJ
RXSJ
RXSJ
RXSJ
RXSJ
RXSJY
RXSJY
RXSJY
RXSJY
RXSJY
RXSJY
RXSJY
B
B
B
B
B
B
B
B
BL
BL
BL
BL
BL
BL
BL
BL
BLD
BLD
BLD
BLD
BLD
BLD
BLD
BLD
BLDB
BLDB
BLDB
BLDB
BLDB
BLDB
BLDB
BLDB
BLDBE
BLDBE
BLDBE
BLDBE
BLDBE
BLDBE
BLDBE
BLDBE
F
F
F
F
F
F
F
F
F
FS
FS
FS
FS
FS
FS
FS
FS
FS
FSA
FSA
FSA
FSA
FSA
FSA
FSA
FSA
FSA
FSAR
FSAR
FSAR
FSAR
FSAR
FSAR
FSAR
FSAR
FSAR
FSARC
FSARC
FSARC
FSARC
FSARC
FSARC
FSARC
FSARC
FSARC
B
B
B
B
B
B
B
B
B
B
BY
BY
BY
BY
BY
BY
BY
BY
BY
BY
BYN
BYN
BYN
BYN
BYN
BYN
BYN
BYN
BYN
BYN
BYNE
BYNE
BYNE
BYNE
BYNE
BYNE
BYNE
BYNE
BYNE
BYNE
BYNEC
BYNEC
BYNEC
BYNEC
BYNEC
BYNEC
BYNEC
BYNEC
BYNEC
BYNEC
D
D
D
D
D
D
D
D
D
D
D
DY
DY
DY
DY
DY
DY
DY
DY
DY
DY
DY
DYG
DYG
DYG
DYG
DYG
DYG
DYG
DYG
DYG
DYG
DYG
DYGG
DYGG
DYGG
DYGG
DYGG
DYGG
DYGG
DYGG
DYGG
DYGG
DYGG
DYGGX
DYGGX
DYGGX
DYGGX
DYGGX
DYGGX
DYGGX
DYGGX
DYGGX
DYGGX
DYGGX
X
X
X
X
X
X
X
X
X
X
X
X
XP
XP
XP
XP
XP
XP
XP
XP
XP
XP
XP
XP
XPK
XPK
XPK
XPK
XPK
XPK
XPK
XPK
XPK
XPK
XPK
XPK
XPKL
XPKL
XPKL
XPKL
XPKL
XPKL
XPKL
XPKL
XPKL
XPKL
XPKL
XPKL
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
XPKLO
R
R
R
R
R
R
R
R
R
R
R
R
R
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
REL
REL
REL
REL
REL
REL
REL
REL
REL
REL
REL
REL
REL
RELL
RELL
RELL
RELL
RELL
RELL
RELL
RELL
RELL
RELL
RELL
RELL
RELL
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
RELLN
M
M
M
M
M
M
M
M
M
M
M
M
M
M
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPA
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAP
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ
MPAPQ



Aucun commentaire:

Enregistrer un commentaire