Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem dynamicka alokace C, retezce

Tak sem se hnul dal a vyladuju uniky pameti valgrindem.
Potreboval jsem si napsat metodu, ktera mi overi, ze na konci retezce je ukoncovaci znak, je vubec napsana spravne? protoze mi to nejak nesedi:

void obsahuje_ukoncovaci_znak(char *p){
	int delka = strlen(p);
	if(strncmp(p+delka,"\0",1) == 0) printf("RETEZEC: %s obsahuje ukoncovaci znak\n\n",p);
	else printf("RETEZEC: %s NEobsahuje!!! ukoncovaci znak\n\n",p);
}
nebo tato?
void obsahuje_ukoncovaci_znak(char *p){
	int delka = strlen(p);
	if(p[delka] == '\0') printf("RETEZEC: %s obsahuje ukoncovaci znak\n\n",p);
	else printf("RETEZEC: %s NEobsahuje!!! ukoncovaci znak\n\n",p);
}
Obe metody mi vraceji stejne vypisy, akorat mi valgrind porad na nekolika radkach pise, ze nekde ctu o 1 bajt mimo alokovany blok.
Diky

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny