[C] Specyfikatory vs zmienne

degel123
Użytkownik
Użytkownik
Posty: 194
Rejestracja: 23 lis 2014, o 19:35
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 64 razy

[C] Specyfikatory vs zmienne

Post autor: degel123 »

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>

int main()
{
char *tekst,*imie="Jan",znak='J';
printf("\n%d",tekst);
return 0;
}

mam taki kod i prosze kogos o wytlumaczenie czemu:
-komenda printf("\n%d",tekst); wyswietla 58
-komenda printf("\n%s",tekst); wywala program
komenda printf("\n%d",imie); wyswietla 4206628
Ostatnio zmieniony 14 cze 2017, o 21:56 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

Re: [C] Specyfikatory vs zmienne

Post autor: Afish »

Pierwsze wypisuje zmienną typu wskaźnik na znak jako liczbę, więc wypisuje adres. Drugie próbuje wypisać tekst zakończony bajtem zerowym, na który wskazuje owa zmienna, ale wskazuje na na partycję null pointer (zakładam architekturę x86), do której dostęp jest zazwyczaj zabroniony, więc program kończy się błędem. Trzecie ponownie wypisuje wskaźnik jako liczbę.
ODPOWIEDZ