incompatible types in assignment

35 отговора 1085 прегледа
в отговор на Aл Koxoнe #21

Re: Леле, великите програмисти

ми покрай такива нафукани перковци се научих да играя мръсно. иначе те правят на две стотинки, без дори да разбират за какво приказват.

ианче решението за дължината е добро, с една малка забележка. при горната постановка трябва да е
if (count > 24) count = 24;
иначе нулевия терминатор ще излезе извън границите на масива.

stoj, ta gledaj
Отговор
в отговор на manski #22

Re: incompatible types in assignment

manski, overrun-a idva ot gets-a, ne ot strcpy, a strncpy ne mozhe da pomogne v sluchaq. Izobshto strncpy se konkurira s gets kato edna ot nai-opasnite i bezpolezni funkcii v libc.

Отговор
в отговор на lndependent #23

Re: Леле, великите програмисти

Tova e po princip OK, makar che ako se zamislish ste vidish che ima niakolko problema.

1. Ne e nuzno da se smiata duljinata na stringa tova ti e dopulnitelna iteracia ne che ste e koi znae kolko po bavno, no vse pak. Vij varianta na Al Kohone po dolu koito e nai-dobria spored men makar che az bih mahnal if-a.

2. Kakto si go napravil s broiach koito e int pri mashini kudeto int e 16 bita primerno, niama da raboti pravilno sus stringove s duljina po goliama ot dva baita.

Отговор
в отговор на dsgfsd #24

Re: Леле, великите програмисти

Imah predvid varianta na Al Kohone koito e po-gore, a ne po-dolu :)))

Отговор
в отговор на lndependent #25

Re: Леле, великите програмисти

Mejdu drugoto dobre e chovek da znae kak rabotiat bibliotechnite funkcii inache lesno ste poluchi problema na "Shlemiel the painter" :)))

[линк]

Отговор
в отговор на dsgfsd #26

Re: Леле, великите програмисти

Dyljinata na masiv v baytove e ogranichena ot MAXINT, taka ili inache. Na vsyaka arhitektura.

Отговор
в отговор на Potencialen emigrant #27

Re: Леле, великите програмисти

ako e masiv -- da, no ako e char* kakuvto e sluchaia -- ne

Отговор
в отговор на B.Oiler #28

Re: incompatible types in assignment

Az imam predvid koda na Malkia, v originalnija posting njama "strcpy".

A inache si prav - v originalnija posting problema idva ot gets, v postinga na Malkia idva ot strcpy.

Po-zdravi !

Отговор
в отговор на dsgfsd #29

Re: Леле, великите програмисти

mersi :)))
statiikata deto si q dal po-dolu e dosta dorbra.

nadqvah se cge i drugite she shvanat kvo imam predvid ama mai she trqbva da im go obqsnq...

znachi imame masiv 25 elementa, ako go obhodim celiq kopirame i \0 mejdu drugoto, ako nqma \0 ne omazvame druga pamet. ne polzvam strlen zashtoto togava imame:
1. izvikvane na funkciq
2. pyhane na pointer v steka
3. koda na strlen
size_t
strlen(str)
const char *str;
{
register const char *s;

for (s = str; *s; ++s);
return(s - str);
}
3. chistene na steka
4. return ot funkciqta

v sluchaq samo s 25 elementa mislq che tova e nenujno ako beshe 1K naprimer da, ama v toq sluchaq...

IF JADEN THEN
GOTO BIRARIA;
Отговор
в отговор на Potencialen emigrant #30

Re: Леле, великите програмисти

Mai neiasno sum se izrazil po gore, imam predvid za realizaciata na strupr(char*) s counter che niama da raboti na vsichki arhitekturi, a ne za chastnia sluchai s masiv v purvonachalnia posting

Отговор
в отговор на dsgfsd #31

Re: Леле, великите програмисти

Naprotiv, pravilno sym te razbral. Iskah da kaja, che ne mojesh da kompilirash takova neshto:
char str[(unsigned)MAXINT + 1];
Nito pyk:
char *str = new char[(unsigned)MAXINT + 1];
Sledovatelno s broyach int ne ogranichavash obshtnostta.

Редактирано от Potencialen emigrant на

Отговор
в отговор на Potencialen emigrant #32

Re: Леле, великите програмисти

ami
char* s = calloc((unsigned)MAXINT,(unsigned)MAXINT);

bi trqbvalo da raboti ama ot de tolkos pamet che da probvam ;)

IF JADEN THEN
GOTO BIRARIA;

Редактирано от Aл Koxoнe на

Отговор
в отговор на Aл Koxoнe #33

hehehe

Ebasi kvo mi napravihte ot temichkata :)))

pitah vi prost vurpos a vie... ;)

vsushnost ucha C v momenta ot edna kniga - Absolute beginner's guide to C
i prosto se chudeh kak moga prosto i burzo da se napishe programa koiato kato napishesh neshto v uppercase da go convertira v lowercase i obratnoto
samo na ANSI C

- null
Отговор
в отговор на Linux|G33K #34

eto ti dwe reshenia na problema :)

#include <ctype.h>
#include <stdio.h>

/*
// not ANSI C
#include <conio.h>
// read from console and write to console in uppercase.
// terminate with Esc. Note that newline is Ctrl-J
int main()
{
int c;
while ( 27 != ( c = getch() ) ) { putch( toupper( c ) ); }
return 0;
}
*/

//ANSI C
// read from stdin and write to stdout in uppercase.
// terminate with EOF ( Ctrl-Z in DOS )
int main()
{
int c;
while ( EOF != ( c = getchar() ) ) { putchar( toupper( c ) ); }
return 0;
}

Отговор
в отговор на Potencialen emigrant #35

Re: Леле, великите програмисти

E ako izpolzvash niakvo API koeto moje da alokira 0 terminated string po-dulug ot MAXINT, kak she raboti, no kakto i da e, tova sa hipotetichni sluchai, prosto imah predvi che drugia variant e safe i ste bachka ABSOLUTNO vinagi :)))

Отговор
в отговор на dsgfsd #36

Re: Леле, великите програмисти

Ama nyama kak da napravish takova neshto, semantikata na ezika ne go pozvolyava... I variantyt s broyach shte raboti vse tolkova absolyutno vinagi, tova se opitvam da obyasnya... :-(

Отговор