dj Creative Commons License 2000.10.24 0 0 5
Sziasztok!

Elörebocsátom, nem vagyok valami expert c-ből ezért is teszek fel ilyen lamer kérdést.

A feladat, öszefűzni két sztringet amit a strcat(a,b) függvény végezne, de csak akkor, ha van elég hely az a változóban, különben futás közben leáll. Ha simán definiálom a-t és b-t:

char *a;
char *b;

a="elsö ";
b="második"

strcat(a,b)

visszatérése után a-ban "első második"-nak kéne lenni, de miután nem foglaltam helyet a-ban b-nek így a program futás közben leáll.

Gondoltam másképp definiálom a-t és kap egy mutatót amit ugye a:

char a[100]; // a karaktertömb
char *ap; // a karaktertömbre mutató mutató

ap=a; // vagy ap=&a[0]; // a karaktertömb első elemének a címe

tenne meg. Ez azért nem műxik mer ap char mutatónak van definiálva és szerintem ezért a cím amit kap nem igazán a-ra mutat. Nekem logikusnak a:

char a[100];
int *ap;

ap=a; // vagy ap=&a[0];

deklaráció tűnne, miután ap-ben címek mozognak, de a fordító már fordításkor kiírja, hogy hibás értékadás. Ha valaki tudja, hogy mit rontok el attól szívesen fogadnám a segítséget.

Üdv:
dj