最近在学C语言,把自己遇到的问题分享一下,希望大家不要踩坑哦!
许多新手在学C语言时容易犯的一个错误,就是指针没有指向目标就拿来直接使用。
int *p;
*p = 1;
错误示例——图一
而在刚开始学习数据结构时也会有类似的错误
typedef struct StackNode
{
SElemType data;
struct StackNode* next;
}StackNode, *LinkStack;
LinkStack S;
S->data = 3;
错误示例——图二
这时系统会显示报错,
这里想强调的是:一个指针必须要指向一个确定的地址才有意义,单独一个指针是没有任何价值的。
解决方案:使用malloc函数在内存中分配一块地址,然后让指针指向这块地址
//定义一个数据类型:其实是链表
typedef struct StackNode
{
SElemType data;
struct StackNode* next;
}StackNode, *LinkStack;
LinkStack S;
S = (LinkStack)malloc(sizeof(StackNode));
//malloc函数就是在内存中分配一块地址,记得 #include <stdlib.h>
//这时候可以对指针进行操作
S->data = 3;
S->next = NULL;
版权声明:本文为tcl271828原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。