当前位置: 技术问答>linux和unix
请问在linux编程中malloc如何使用。
来源: 互联网 发布时间:2016-09-23
本文导语: 我在写个检测16进制数中0,1的个数的程序,遇到个问题,当程序执行到 pp=(char *)malloc(sizeof(char *) * len_str); 时出现segment fault错误,谁能解释是一下啊, 是malloc的问题吗? 下面是部分代码 char *pstr,*pbin,*ps...
我在写个检测16进制数中0,1的个数的程序,遇到个问题,当程序执行到
pp=(char *)malloc(sizeof(char *) * len_str);
时出现segment fault错误,谁能解释是一下啊,
是malloc的问题吗?
下面是部分代码
char *pstr,*pbin,*ps,*pp;
int len_str,len_bin,max,len,i,j;
char ch;
max=0;
pstr=test_num;
printf("input string is %s n",pstr);
len_str=strlen(pstr)-2;
printf("len_str is %dn",len_str);
pp=(char *)malloc(sizeof(char *) * len_str); // segment fault
hex2bin(*pstr+2);
pp=(char *)malloc(sizeof(char *) * len_str);
时出现segment fault错误,谁能解释是一下啊,
是malloc的问题吗?
下面是部分代码
char *pstr,*pbin,*ps,*pp;
int len_str,len_bin,max,len,i,j;
char ch;
max=0;
pstr=test_num;
printf("input string is %s n",pstr);
len_str=strlen(pstr)-2;
printf("len_str is %dn",len_str);
pp=(char *)malloc(sizeof(char *) * len_str); // segment fault
hex2bin(*pstr+2);
|
不是malloc的问题,你的代码很乱,这句话什么意思?pstr=test_num;
test_num如果不是指向一个合适的字符串的话,剩下的事情都是乱搞了。
test_num如果不是指向一个合适的字符串的话,剩下的事情都是乱搞了。
|
max=0;
pstr=test_num;
printf("input string is %s n",pstr);
len_str=strlen(pstr)-2; // 这里,你能保证len_str不等于零或者负数么?
printf("len_str is %dn",len_str);
pp=(char *)malloc(sizeof(char *) * len_str); // segment fault // 再看这里,如果上面得到了0或者负数,则malloc当然就失败了!
hex2bin(*pstr+2);
pstr=test_num;
printf("input string is %s n",pstr);
len_str=strlen(pstr)-2; // 这里,你能保证len_str不等于零或者负数么?
printf("len_str is %dn",len_str);
pp=(char *)malloc(sizeof(char *) * len_str); // segment fault // 再看这里,如果上面得到了0或者负数,则malloc当然就失败了!
hex2bin(*pstr+2);