Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Dynamiczna alokacja pamięci, przypisywanie wartości

Ostatnio zmodyfikowano 2016-05-09 08:42
Autor Wiadomość
King1337
Temat założony przez niniejszego użytkownika
[C] Dynamiczna alokacja pamięci, przypisywanie wartości
» 2016-05-08 13:28:40
C/C++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Student
{
    int nralb;
    char imie[ 999 ];
};
int main()
{
    char * k;
    int i, n, j, p;
    start:
    printf( "%s", "ilu? " );
    scanf( "%d", & n );
    if( n > 0 && n < 100 )
    { struct Student * ptr;
        ptr = calloc( n, sizeof( struct Student ) );
        for( j = 0; j < n; j++ )
        {
            printf( "%s", "Imie? " );
            scanf( "%s", k );
            strcpy( ptr[ j ].imie, k );
            printf( "%s", "Numer? " );
            scanf( "%d", & p );
            ptr[ j ].nralb = p;
        }
        for( i = 0; i < n; i++ )
        {
            printf( "Imie: %s\n", ptr[ i ].imie );
            printf( "Numer albumu: %d\n", ptr[ i ].nralb );
        }
    }
    else
    {
        printf( "%s", "nieprawidoa liczba\n" );
        goto start;
    }
    return 0;
}

Program kompiluje się i działa do momentu podania imienia, zaraz potem wyskakuje "program przestał działać". Problem w tym, że ponieważ kompiluje się bez problemu, to nie mam pojęcia co jest z tą zmienną "p" nie tak.
P-148037
Rashmistrz
» 2016-05-08 19:50:03
{ struct Student * ptr;
.

{ Student * ptr;
?
P-148040
King1337
Temat założony przez niniejszego użytkownika
» 2016-05-08 20:47:35
Mógłbyś proszę rozwinąć?
P-148043
pekfos
» 2016-05-09 08:42:09
Mógłbyś proszę rozwinąć?
Szkoda na niego uwagi.

C/C++
char * k;
//..
scanf( "%s", k );
k nie wskazuje na żaden poprawny obszar pamięci. Tylko po co ten bufor k? Wczytuj tekst od razu do ptr[j].imie.
P-148050
« 1 »
  Strona 1 z 1