[ mag21 @ 24.03.2006. 12:20 ] @

U kodu:

char *p;

p = "1234567";
p += 3;
*p = '0';
...

Pri javlja se greska: Sementation fault
Ne znam sta je uzrok tome.
[ Pharos @ 24.03.2006. 12:56 ] @
Ok.
Samo reci šta želiš da uradiš pa da vidimo šta se uraditi može.
Imaš dinamički niz 1,2,3,4,5,6,7
Posle pomeraš pokazivač i novi niz je 4,5,6,7
A šta je trećom linijom pisac hteo da kaže...
[ Dragi Tata @ 24.03.2006. 13:13 ] @
Ovde je problem:

Citat:
mag21:
char* p;
p = "1234567";


p pokazuje na "string literal" koji se "ugrađuje" u sam exe imidž i to ne možeš d amenjaš, mada možeš da čitaš.

Zameni sa

Code:

char p[] = "1234567";


i "1234567" će biti alocirano na steku, a to možeš da menjaš do mile volje.

Zajeban ovaj C ;)
[ Pharos @ 24.03.2006. 13:28 ] @
Samo što opet čekamo na njegov odgovor šta on zapravo želi.
Možda mu je bolje
Code:

char p[30] = "1234567";

Ili 30 zameniti s drugim brojem odnosno max. veličinom niza, ako čovek želi da 1234567 zameni sa 123456789...
S druge strane, ako unapred nije poznata max veličina niza, možda je najbolje da radi s povezanim listama i sl.

@mag21
U svakom slučaju pogledaj još strcpy i strcat.


[ mag21 @ 24.03.2006. 14:17 ] @
Zahvaljujem se na veoma brzom i kompletnom odgovoru.

Dosad sam radio samo sa dekleracijama tipa: char p[]
a sad sam probao da malo menjam stil.

Zahvaljujem se jos jednom