Kezdőoldal » Számítástechnika » Programozás » Miért nem jó néha? (C-s kód)

Miért nem jó néha? (C-s kód)

Figyelt kérdés

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

int main()

{

char string[5];

char betu;

int i,j;

j=0;

printf("Adjon meg egy sztringet!:\n");

gets(string);

printf("Adja meg mit keres!:\n");

scanf("%c",&betu);

realloc(string,strlen(string)+1);

for(i=0;i<=strlen(string);i++)

{

if(string[i]==betu)

{

++j;

}

}

printf("%d db \"%c\" betű\n",j,betu);

system("PAUSE");

}


Nosh, van ez a C-s kód.

Elvileg be kne, hogy kérjen egy sztringet és utánna egy betűt.

Miután ez megvolt kiírja, hogy mennyi olya betű van a szövegben.

A legelején megadom, hogy mekkora legyen a sztring.

De ha netán azt túllépné akkor realloc-val utánna igazítom.

De miírt csinálja azt, hogy hibát ír ha a legelején a sztring méretét 2-re állítom

és nem ír hibát ha pl. 5 re állítom.?

És mellesleg egy véleményt is kérnék!

Mit gondoltok milyen lett a célra a kód?

Köszi!!


2011. nov. 22. 20:41
 1/3 _Jessy_ ***** válasza:
1. Felesleges utánaigazítani. Azért kapsz néha hibát, mert kevés az 5 karakter. Ha annál többet írsz beolvasásnál, akkor a lefoglalt területen kívülre próbálja beírni a beolvasott szöveget, és ha ez más program által használt memóriaterület, akkor összeomlik.
2011. nov. 22. 20:46
Hasznos számodra ez a válasz?
 2/3 _Jessy_ ***** válasza:
és ne nevez string-nek a változódat, mert mindenféle hiba keletkezhet belőle. Az elgondolás jó csak a program rossz :) pl i<=strlen(string) helyett i<strlen(string), ugyanis az index nem megy el strlen(string)-ig, mivel nullától kezdődik.
2011. nov. 22. 20:50
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Jaj ezek nagyon igazak és hasznosak!! Köszi!
2011. nov. 22. 21:10

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!