#include <stdio.h> int main() { int numero[30]; printf("anna numero: "); scanf("%d", &numero); printf("numero on... %s", numero); while (numero < 10) { printf("%d\n", numero); numero++; } }
jotain3.c: In function ‘main’: jotain3.c:10:17: warning: comparison between pointer and integer 10 | while (numero < 10) { | ^ jotain3.c:12:11: error: lvalue required as increment operand 12 | numero++; | ^~
Mikä tässä on vikana? En tajua virheilmoitusta.. Tää on mun ekoja koodeja joten olkaa armollisia :D:D
Sulla on joukko jossa on 30 kokonaislukua ja vertailet tätä joukon alkuosoitetta numeroon kymmeneen (varoitus) ja sitten koitat kasvattaa koko joukon alkuosoitetta yhden suuremmaksi (virhe).
Kaiken kaikkiaan tuo vaikuttaisi järkevämmältä jos poistaisit [30] tuosta, jolloin sinulla ei olisi joukkoa numeroita, vaan vain yksi numero.
Poistin sen 30. Nyt tulee tällänen virheilmoitus...
jotain kirjoitti:
anna numero: 6
zsh: segmentation fault ./a.out
Sinulla on tulostuksessa %s vaikka pitäisi olla %d. Jos laittaisit kääntäessä kaikki varoitukset käyttöön, nykyinen gcc osaisi varmaan kertoa tämänkin virheen. Eli kannattaa lisätä käännöskomentoon seuraavat parametrit: -Wall -pedantic -Og
(Huom, merkkaa viesteissä koodit ja tulosteet koodina eikä lainauksena, niin saa paremmin selvää.)
Aihe on jo aika vanha, joten et voi enää vastata siihen.