结构指针?出了点问题

use*_*766 1 c struct pointers

嗨,我正在尝试用结构中的指针创建一个程序.编译器似乎没有问题,但程序崩溃.请问你能帮帮我吗 ?

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

int pos;

typedef struct _Parking Parking;

struct _Parking
{
    int   pos;    
    char  name[15];       
    char  description[80];  
    float price;         
    int   slots[5];       
    char  last_driver_id;    
    int   reservations;   
};

Parking *myaccounts;

int create_Parking()
{
    strcpy(myaccounts->name,"Pro");
    myaccounts->pos ++;

    return pos-1;               
}

int main()
{

    int a;

    a = create_Parking();

    printf("a=%d\n",a);
    printf("name=%s\n",myaccounts->name);

    system("pause");    
    return 0;    
}
Run Code Online (Sandbox Code Playgroud)

Hel*_*hne 8

您的myaccounts指针初始化为NULL(作为全局变量),因此不指向可用内存.有关更多信息,请参阅malloc的手册页.

编辑:纳入Maciej的评论.

  • 零初始化指针不是有效指针.另外,零初始化或不初始化,我不建议使用未明确初始化的变量. (2认同)

Pau*_*lin 6

你永远不会为"myaccounts"分配任何内存.