繁体   English   中英

分段错误(核心转储)错误未解决

[英]Segmentation fault (core dumped) error not resolved

#include<iostream>
#include<cstdlib>
using namespace std;

int main(){

int i,n;
char * buffer=NULL;
i=0;
cout<<"enter the character length you wish to store dynamically"<<endl;
cin>>i;

buffer= (char*) malloc(i+1);
if(buffer=NULL)
exit(1);
for(n=0;n<i;++n)
buffer[n]=rand()%26+'a';
buffer[i]='\0';

cout<<"the string is "<<buffer<<endl;
free(buffer);
return 0;}

我遇到了分段错误:输出:输入要动态存储的字符长度5分段错误(核心已转储)我无法找出我的错误? 我试图在调试器模式下运行,但是没有为它生成核心文件。 请提出解决方案。

buffer=NULL是一个赋值。 它将被评估为false,并且buffer[n]=rand()%26+'a'; 将取消引用分配的NULL

做比较buffer==NULL代替。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM