linux c malloc 段错误,帮忙看下。

歼击机35 2014-01-16 10:14:13
帮忙看下这个malloc段错误。实在不知道原因、
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct link_node
{
char data;
struct link_node *next;
}linknode;

typedef linknode *linkp;


linkp * list=NULL;

int main()
{
*list=(linkp)malloc(sizeof(linknode));
if (!(*list))
{
return -1;
}
memset(&((*list)->data),0,sizeof(char));
(*list)->next=NULL;
return 0;
}
...全文
334 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
歼击机35 2014-01-17
  • 打赏
  • 举报
回复
还有就是这个排序的代码,也有问题!麻烦看看, paixu(linkp list) { linkp x,y,p=list,fs=NULL; while(fs!=p->next->next) { for(p=list;p->next->next!=fs;p=p->next) { if((p->next->data) > (p->next->next->data)) { x=p->next; y=p->next->next; p -> next = y; x -> next = y -> next; y -> next = x; } } fs=p->next; } }
歼击机35 2014-01-17
  • 打赏
  • 举报
回复
我这里的*list,是个二级指针么,我对着这不是很清楚。主要这个是从教科书上搬下来的,所以没想到还有这种问题。
max_min_ 2014-01-16
  • 打赏
  • 举报
回复


linkp  list=NULL;
list = (linkp )malloc(sizeof(linknode));
memset(list, 0 ,sizeof(linknode))

//或者
linknode * listA = NULL ;
listA = (linknode *)malloc(sizeof(linknode));
memset(listA, 0, sizeof(linknode));
 
嵌入式乌托邦 2014-01-16
  • 打赏
  • 举报
回复
估计楼主指针还不熟悉,1楼正解!
zodiac1111 2014-01-16
  • 打赏
  • 举报
回复
- *list=(linkp)malloc(sizeof(linknode));
+ list=(linkp*)malloc(sizeof(linknode));

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧