【发布时间】:2016-06-19 03:18:05
【问题描述】:
#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 分段错误(核心转储) 我无法弄清楚我犯的错误? 我尝试在调试器模式下运行,但没有为它生成核心文件。? 请提出解决方案。
【问题讨论】:
-
您的错误在这里:
if(buffer=NULL)。这会将buffer设置为NULL。我想你想要if (buffer == NULL)。或者更好,if (NULL == buffer)。